He estado trabajando en una prueba de concepto utilizando WCF y MSMQ. He estado jugando con la configuración del acelerador usando los valores predeterminados This Article y también agregando mis propias configuraciones al archivo de configuración. Tengo 2 CPU Quad Core Xeon ejecutando esta aplicación. Independientemente de la configuración que aplique, siempre aparece solo 8 mensajes a la vez (lo que coincide con mis núcleos de procesamiento). Quiero que cada uno de los mensajes se maneje en una sola transacción, por lo que podría ser parte del problema ... no estoy seguro. Supongo que manejará muchos más mensajes al mismo tiempo de lo que es.Configuraciones del acelerador WCF
comportamiento en servicio:
[ServiceBehavior(UseSynchronizationContext = true,
ReleaseServiceInstanceOnTransactionComplete=true,
ConcurrencyMode = ConcurrencyMode.Single,
InstanceContextMode = InstanceContextMode.PerCall)]
punto final Comportamiento:
<endpointBehaviors>
<behavior name="endpointBehavior">
<transactedBatching maxBatchSize="1" />
</behavior>
</endpointBehaviors>
Mi propia aplicación de estrangulamiento:
<serviceThrottling maxConcurrentCalls="128" maxConcurrentSessions="800" />
estoy pasando por alto algo? Tal vez simplemente no entiendo completamente la configuración predeterminada/personalizada del acelerador (Probable).
EDITAR
He modificado el ConcurrencyMode (Cambiado a Múltiple), junto con el ajuste ReleaseServiceInstanceOnTransactionComplete. ¿Cambiar a Múltiple no pareció cambiar nada?
EDIT ¿Es quizás la configuración de TransactionBatch? Tengo ese conjunto a uno ...?
Gracias,
S
¿No es esto de un solo subproceso? –
Hola @JohnBreakwell He cambiado el modo de concurrencia a Múltiple y parecía estar dando los mismos resultados. – scarpacci