Previous Topic: Default ProcessingNext Topic: Building on z/OS


Customizing the Exit

This is an exit for TISRVLIS and TISRVMSL, not the server application. The exit is invoked after TISRVLIS or TISRVMSL obtains a copy of the cooperative buffer header sent by each client request and extracts the data required to start the server.

The ASCII user ID, as supplied by the client, can be modified by those users that include special characters (excluding A-Z and 0-9) in their user ID fields. This ASCII user ID is then translated to EBCDIC in the exit. If conversion of the security data to uppercase is required, it can be done in this exit.

The variable 'CICS' can be set to the SYSID of the CICS region where the server is to be routed to. If the value of the variable 'CICS' returned to TISRVLIS is the same as the SYSID of the CICS region where TISRVLIS or TISRVMSL is executing, the EXEC CICS START API command will not specify the SYSID parameter (a local START). If the value of the variable 'CICS' returned is different, the returned value of the variable 'CICS' is used in the START.

The Sockets Server implementation lets the server be routed to a CICS region different from the one where the TISRVLIS or TISRVMSL listener is executing. Routing may be invoked by using the SYSID where the server is to execute, as described above, or by using Distributed Routing. Distributed Routing may be implemented via the DSRTPGM program or the CICS transaction definition.

The CICS Sockets Interface must be active in the CICS region the server is routed to but an active listener is not required in that CICS region.

This exit includes sample code that can be used to validate the user ID and password, the presence of enhanced security data, the presence of encrypted data, or the presence of encrypted and enhanced security data, to modify the Listener Givesocket/Takesocket Timeout value, the value of the STERMID and the value of the CHECKFLG.

On input, the Listener GIVESOCKET/TAKESOCKET Timeout – Seconds value is the value entered for the GIVTIME parameter in the EZACONFG file. This value is used to populate the TIMEOUT Seconds parameter of the SELECT Sockets API call used by the Listener to wait for the socket to be taken (using the GIVESOCKET/TAKESOCKET process) by the server. Since the EZACONFG file does not capture the equivalent Microseconds value, the only opportunity to provide a value for this parameter is in this exit.

If the STERMID variable is updated with a CICS Terminal ID, the Server START TRANSID will include the TERMID parameter. Note that in this case the USERID will not be specified and a server started this way will inherit the USERID of the Listener.

Use the STERMID option if you are migrating from TICONMGR and used this feature in that implementation. The TIRCSGN user exit is provided for the same reason.

On input, the CHECKFLG is set to Y which means to start the server transaction with CHECK. If you wish a remotely started transaction to be started with NOCHECK, set the flag to N. You can also use the EDBTRAN to decide the value of the flag.

Modify the exit to execute the desired validation code.