Use the TCP listener backlog option on UNIX and Linux
In TCP, connections are treated incomplete unless three-way handshake takes place between the server and the client. These connections are called outstanding connection requests. A maximum value is set for these outstanding connection requests and can be considered a backlog of requests waiting on the TCP port for the listener to accept the request.
The default listener backlog values are shown in Table 1.
Server platform | Maximum connection requests |
---|---|
AIX | 100 |
HP-UX | 20 |
Linux | 100 |
IBM® i | 255 |
Solaris | 100 |
Windows Server | 100 |
Windows Workstation | 100 |
z/OS® | 255 |
If the backlog reaches the values shown in Table 1, the TCP/IP connection is rejected and the channel is not able to start.
For MCA channels, this results in the channel going into a RETRY state and trying the connection again at a later time.
However, to avoid this error, we can add an entry in the qm.ini file:TCP: ListenerBacklog = nThis overrides the default maximum number of outstanding requests (see Table 1 ) for the TCP/IP listener. Note: Some operating systems support a larger value than the default. If necessary, this value can be used to avoid reaching the connection limit. To run the listener with the backlog option enabled either:
- Use the runmqlsr -b command, or
- Use the MQSC command DEFINE LISTENER with the BACKLOG attribute set to the required value.