We have a problem where during load testing, if we quickly call in one of our services, we get an error
"System.ServiceModel.ServerTooBusyException: A request to create a reliable session was denied by the destination server RM." Net.tcp: // local: 10511 / ParameterMonitorService “is too busy to process this request Please try again later. Unable to open channel.
We increased the value of maxPendingChannels from its default from 4 to 128, and then outside, and now the error has disappeared, instead of throwing an exception, the service will simply stop processing messages under load, and then start in a few minutes.
It seems that he will not drop anything, he just hangs for a while. The more we broke the service, the longer this restoration would probably take.
The service is configured as Per-Call with ConcurrencyMode Multiple. Other behavior settings:
<serviceThrottling maxConcurrentCalls="100" maxConcurrentSessions="100" maxConcurrentInstances="100"/>
<customBinding>
<binding name="Services_Custom_Binding" openTimeout="00:00:20" sendTimeout="00:01:00">
<reliableSession ordered="true" inactivityTimeout="00:10:00" maxPendingChannels="128" flowControlEnabled="true" />
<binaryMessageEncoding>
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</binaryMessageEncoding>
<tcpTransport maxPendingConnections="100" listenBacklog="100" />
</binding>
</customBinding>
We are kind of stuck. Any help appreciated!
source
share