I am working on a proof of concept using WCF and MSMQ. I played with throttle settings using the default values โโof This Article , and also adding my own settings to the configuration file. I have 2 Quad Core Xeon processors working with this application. No matter what settings I apply, it always appears only to capture 8 messages at a time (which corresponds to my processing kernels). I want each of the messages to be processed in one transaction, so that this could be part of the problem ... not sure. I believe that it will process much more messages at the same time than it is.
Service Behavior:
[ServiceBehavior(UseSynchronizationContext = true, ReleaseServiceInstanceOnTransactionComplete=true, ConcurrencyMode = ConcurrencyMode.Single, InstanceContextMode = InstanceContextMode.PerCall)]
Endpoint behavior:
<endpointBehaviors> <behavior name="endpointBehavior"> <transactedBatching maxBatchSize="1" /> </behavior> </endpointBehaviors>
My own throttling service:
<serviceThrottling maxConcurrentCalls="128" maxConcurrentSessions="800" />
Am I missing something? Maybe I just don't quite understand the default settings / user settings of the throttle (probably).
EDIT
I changed the ConcurrencyMode parameter (changed by several) along with the ReleaseServiceInstanceOnTransactionComplete parameter. Changing to Multiple didn't change anything?
EDIT Perhaps this is a TransactionBatch parameter? I have it set to one ...?
Thanks,
S
source share