CICS application transaction (IBM listener)

In a CICS® system based on SNA terminals, the CICS terminal management modules perform the functions of a concurrent server. Because the TCP/IP interface does not use CICS terminal management, CICS TCP/IP provides these functions in the form of a CICS application transaction, the listener. The CICS transaction ID of the IBM® distributed listener is CSKL. This transaction is defined at installation to execute the EZACIC02 program and is to be further referenced as the listener. This transaction ID can be configured to a transaction ID suitable for the user's requirements through the use of the EZACICD macro or the EZAC CICS transaction and the accompanying RDO transaction definition.

The listener performs the following functions:
  • It issues appropriate TCP/IP calls to listen on the port specified in the configuration file and waits for incoming connection requests issued by clients. The port number must be reserved in the hlq.TCPIP.PROFILE to the CICS region using the TCP/IP CICS sockets interface.
  • When an incoming connection request arrives, the listener accepts it and obtains a new socket to pass to the CICS child server application program.
  • The standard listener starts the CICS child server transaction based on information in the first message on the new connection. The format of this information is given in IBM listener input format. For the enhanced listener, it starts the CICS child server transaction based on information in the TCP/IP CICS configuration file, EZACONFG.
  • It waits for the child server transaction to take the new socket and then issues the close call. When this occurs, the receiving application assumes ownership of the socket and the listener has no more interest in it.

The listener program is written so that some of this activity goes on in parallel. For example, while the program is waiting for a new server to accept a new socket, it listens for more incoming connections. The program can be in the process of starting 49 child servers simultaneously. The starting process begins when the listener accepts the connection and ends when the listener closes the socket it has given to the child server.

Table 1 illustrates the listener configuration in contrast with the connected clients address family and indicates the contents of the IPv4 and IPv6 IP address fields presented to the security or transaction exit.
Table 1. Listener configuration presented to security or transaction exit
Listeners AF configuration Connected client's AF Exits address family Exits client's IPv4 address Exits client's IPv6 address Exits listener's IPv4 address Exits listener's IPv6 address
not specified AF_INET AF_INET IPv4 addr zeros IPv4 addr zeros
AF_INET AF_INET AF_INET IPv4 addr zeros IPv4 addr zeros
AF_INET6 AF_INET AF_INET6 zeros IPv4 mapped IPv6 addr zeros IPv4 mapped IPv6 addr
AF_INET6 AF_INET6 AF_INET6 zeros IPv6 addr zeros IPv6 addr