How to control what TCP/IP stack CCITCP and/or CCITCPGW binds with.

Document ID : KB000026468
Last Modified Date : 14/02/2018
Show Technical Document Details


There are times when it may be necessary or desired to run multiple TCP/IP stacks on the same system. This may be done to control access via a specific network patch, or to control access through a firewall. In the event this type of environment is defined, and there is a need or desire to have the CAICCI TCP/IP tasks to bind to a specific stack, this can be done by altering how the tasks are started.

With the current supported versions of CCI TCP/IP procedures, the TCP/IP stacks we bind to will not be controlled by the contents of SYSTCPD. We are using standard callable services to determine what TCP/IP stacks are available and we will bind to them. Even though SYSTCPD is not used for the initial BIND process, the presence of the DD will aid in DNS lookup, so it should remain in the proc.



  • For CCS r14.0 and above, to set stack affinity you use the same method whether or not you are using SSL.

To specify the IP stack for stack affinity, in the PROTOCOL statement, the syntax is: 


Alternatively, you can adjust the JCL used to start the respective procs:

Specify TCP=tcpip_jobname in the PARM statement on the EXEC PGM statement.

I.E. PARM='TCP=tcpip_procname, PORT=&PORT,...'


  • For CCS r12, here is how you would set stack affinity.

For the non-SSL procs (CCITCP and CCITCPGW), if you want to control what TCP/IP stack to bind with, you should use the following format of the PROTOCOL statement:


where xxxxx is the TCP/IP procname, and #### is the PORT number. The asterisk preceding the TCP/IP procname is required.

For the SSL procs (CCISSL and CCISSLGW), if you want to control what TCP/IP stack to bind with, you should update the proc and specify TCP=tcpip_procname within the PARM statement that is shipped with the EXEC PGM statement.