Configuring Advanced Inter-process Communications

The system uses the Windows Communication Framework (WCF) for inter process communications.

The default settings used by the system should be adequate for most work, but in some cases tweaking these parameters using the application configuration files can be beneficial.

An example of when this should be done is in a very busy system with high load where the administration tool is viewing CICS trace data. The sheer volume of data might be too much for the default WCF buffer sizes. Changing maxReceivedMessageSize and MaxArrayLength in the monitor process would be appropriate.

For a WAS (IIS hosted) deployment, the SEP and Dispatcher parameters are in the appropriate web.config file.

The Listener and Monitor roles' default configuration files are in the following locations:

The following parameters can be configured for each role. The default values are used by the system if no overriding parameter is found in the configuration files.

  • NetNamedPipe.maxConnections
    • The maximum number of connections, both inbound and outbound, that are allowed to endpoints.
    • Default value is 250
  • NetTcp.maxConnections
    • The maximum number of concurrent TCP connections allowed.
    • Default value is 250
  • Throttling.maxConcurrentCalls
    • The maximum number of messages actively processing across a role.
    • Default value is 512
  • Throttling.maxConcurrentSessions
    • The maximum number of sessions a role can accept.
    • Default value is 512
  • NetTcp.maxReceivedMessageSize
    • The maximum size (in bytes) for a received message that is processed by the Role.
    • Default value is 200000
  • NetTcp.ReaderQuotas.MaxArrayLength
    • The maximum array length that is created and returned by various API calls.
    • Default value is 150000
The following example configures the Role to increase the default values of all by 10. The example might not make sense and is for illustrative purposes only.
<services>
      <!-- Sample settings for changing WCF service parameters -->
      
      <add key="NetNamedPipe.maxConnections" value="260" />
      <add key="NetTcp.maxConnections" value="260" />
      <add key="Throttling.maxConcurrentCalls" value="522" />
      <add key="Throttling.maxConcurrentSessions" value="522" />
      <add key="NetTcp.maxReceivedMessageSize" value="200010" />
      <add key="NetTcp.ReaderQuotas.MaxArrayLength" value="150010" />
    </services>
Attention: It is important to understand, in depth, what these parameters do. Please read the relevant Microsoft documentation and white papers before changing any of these.
CAUTION:
Changing these parameters can have a very bad impact on the system if the values are not thought out carefully. The default values supplied in the product have been calculated to cater for most installations and should rarely need changing.