TSO client functions can be directed against any of a number of
TCP/IP stacks. Obviously, the client function must be able to find
the TCPIP.DATA appropriate to the stack of interest at any one time.
Some TSO client commands provide a parameter to specify the stack
to be used. For those that do not, the following methods are available
for finding the relevant TCPIP.DATA:
- Add a SYSTCPD DD statement to your TSO logon procedure. The issue
with this approach is that a separate TSO logon procedure per stack
is required, and users have to log off TSO and log on again using
another TSO logon procedure in order to switch from one stack to another.
- Use one common TSO logon procedure without a SYSTCPD DD statement.
Before a TSO user starts any TCP/IP client programs, the user has
to issue a TSO ALLOC command wherein the user allocates a TCPIP.DATA
data set to DD name SYSTCPD. To switch from one stack to another,
the user has to deallocate the current SYSTCPD allocation (for example,
TSO FREE command) and allocate another TCPIP.DATA data set.
- Combine the first and second methods. Use one logon procedure
to specify a SYSTCPD DD for a default stack. To switch stacks, issue
TSO ALLOC to allocate a new SYSTCPD. To switch back, issue TSO ALLOC
again with the name that was on the SYSTCPD DD in the logon procedure.
The disadvantage to this approach is that the name that was on the
SYSTCPD DD is hidden in the logon procedure and needs to be retrieved
or remembered.
The last method can be implemented by creating a small REXX program
for every TCP/IP stack on your MVS™ system.
For each stack create a REXX program with the name of the stack (for
example, T18A or T18B). Whenever TSO users want to use the T18A stack,
they run the T18A REXX program. Any TCP/IP functions invoked thereafter
will use the T18A stack for socket communication. If users want to
switch to the T18B stack, they run the T18B REXX program. See Figure 1 for an example.
Figure 1. REXX program to switch
TSO user to another TCP/IP stack