I have been working on a proof of concept using WCF and MSMQ. I have been playing around with the throttle settings using the defaults This Article and also adding my own settings to the config file. I have 2 Quad Core Xeon CPUs running this application. No matter what settings I apply it always only appears to grab 8 messages at a time (Which matches my processing cores). I want each of the messages to be handled in a single transaction so that could be part of the issue...not sure. I jsut assumed it would handle a lot more messages concurrently 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 Service Throttling:
<serviceThrottling maxConcurrentCalls="128" maxConcurrentSessions="800" />
Am I overlooking something? Maybe I just don't fully understand the default / custom throttle settings (Likely).
EDIT
I have modified the ConcurrencyMode (Changed to Multiple) along with the ReleaseServiceInstanceOnTransactionComplete setting. Changing to Multiple didn't seem to change anything?
EDIT Is it maybe the TransactionBatch setting? I have that set to one...?
Thanks,
S