Technical Blog Post
How do I determine a SOCKETCLOSE value for Outbound Connection Pooling in CICS?
Although the manuals make a great effort in explaining what is needed to configure Outbound Connection Pooling, you may still need some help with tuning a compatible SOCKETCLOSE value that will work within your system. Hopefully, the information below will assist you in making this an easy task.
Start by specifying a SOCKETCLOSE value of one minute 000100 (hhmmss) or a value of your choosing. Then, make use of your DFHSTUP statistics output or use the STAT transaction online to capture URIMAP Resource statistics. Specifically observing the following four statistics:
- URIMAP Socket pool size
- URIMAP Peak socket pool size
- URIMAP Sockets reclaimed
- URIMAP Sockets timed-out
You should not be too concerned about the "Socket pool size" or "Peak socket pool size" as they are purely influenced by the number of concurrent requests using the specific URIMAP. A high value is only a concern if the specific URIMAP is not expected to be being used very much.
The number of "Sockets reclaimed" is where CICS had no available sockets to service a new request so one of the idle sockets from the pool was closed and reused for the new request. If the number of reclaimed sockets is high then that could indicate the system is processing too much "sockets based work" compared to its MAXSOCKETS setting within the CICS system initialization parameters (DFHSIT). If this is your case you should consider increasing your MAXSOCKETS setting.
The most important value for tuning is the number of "Sockets timed out". If there is a huge number being timed out then this would indicate that one of the following is happening:
- the sockets are not being used very much and are instead remaining idle in the pool until the SOCKETCLOSE value is reached
- the SOCKETCLOSE value is too small and the sockets are getting closed before they have had a chance to get reused
In this case, the value for SOCKETCLOSE should be increased to allow the sockets to get reused. If the number of timeouts is 0 or a relatively small number then that indicates the pool is working well and the sockets are being actively reused.
This blog applies to CICS Transaction Server for z/OS V4.2 and higher.