|
In the sample network, assume that GWNCP40 is selected
for the session between the terminal (N02L0256) and the application
program (A50CICS). Route activation for this session does not take
place until the BIND flows for the session. In this case, the BIND
flows from the VTAM® host (V50CDRM)
to the gateway NCP (GWNCP40). Assume that the link is not operative
between the gateway NCP (GWNCP40) and the NCP subarea (NCP02) in NET1.
As a result, the virtual route (VR) cannot be activated and the LU-LU
session fails. There is no information provided to the session management
exit routine indicating that the route is unavailable, even though
the gateway NCP is available. If the user at the terminal attempts
to reinitiate the session, the session management exit routine, using
the same logic, continues to select the same gateway NCP over which
the complete network route is unavailable.
In the sample session management exit routine, the gateway
path selection function performs the following logic to select a GWPATH
from the list: - Examines the real LU name of the application program in the PLU
and the SLU RIC to determine if the LU name is either A50CICS or A60CICS.
If the DLU or OLU is neither of these names, the session management
exit code uses the default gateway path selection.
- If the real LU name is A50CICS, ensure that GWNCP30 is the first
entry in the list. If the LU name is A60CICS, the session management
exit reorders the list, if necessary, to ensure that GWNCP40 is the
first entry in the GWPATH selection list
The following code locates the real LU name for the PLU
or SLU. If the LU name is not a CICS® application
program, the exit returns control to VTAM without
modifying the GWPATH list.
***********************************************************************
* SME ROUTINE - GATEWAY PATH SELECTION FUNCTION
***********************************************************************
GWPATH EQU *
*
** LOCATE USER DATA STORAGE AREA - GWPATH NAME AND SUBAREA ADDRESS
*
GWPTHS1A EQU *
L R1,8(R11) USER DATA FIELD ADDRESS
L R1,0(R1) USER DATA STORAGE AREA ADDRESS
*
** LOCATE PLU RESOURCE INFORMATION CONTROL VECTOR - REAL LUNAME
*
GWPTHS1B EQU *
SR R5,R5 CLEAR WORK REGISTER 5
L R4,12(R11) PLU RIC ADDRESS
LA R4,4(R4) PLU RIC SSCPNAME ADDRESS
IC R5,0(R4) PLU RIC SSCPNAME LENGTH
AR R4,R5 PLU RIC REAL NETID ADDRESS VECTOR MINUS ONE
LA R4,1(R4) PLU RIC NETID LENGTH ADDRESS
IC R5,0(R4) PLU RIC NETID LENGTH
AR R4,R5 PLU RIC REAL LUNAME ADDRESS VECTOR MINUS ONE
LA R4,1(R4) PLU RIC REAL LUNAME LENGTH ADDRESS
IC R5,0(R4) PLU RIC REAL LUNAME LENGTH
LTR R5,R5 TEST PLU REAL NAME FOR ZERO LENGTH
BE GWPTHS1C YES, NO REAL PLU NAME
BCTR R5,0 PLU RIC REAL LUNAME LENGTH MINUS ONE
LA R4,1(R4) PLU RIC REAL LUNAME ADDRESS
*
** COMPARE THE PLU RIC LUNAME TO APPLICATION NAME: A50CICS OR A60CICS
*
EX R5,CICS50 COMPARE PLU RIC REAL LUNAME TO ACICS50
BE GWPTHS2A YES, REORDER GWPATH AS NECESSARY
EX R5,CICS60 COMPARE PLU RIC REAL LUNAME TO ACICS60
BE GWPTHS2B YES, REORDER GWPATH AS NECESSARY
*
** LOCATE SLU RESOURCE INFORMATION CONTROL VECTOR - REAL LUNAME
*
GWPTHS1C EQU *
SR R5,R5 CLEAR WORK REGISTER 5
L R4,16(R11) SLU RIC ADDRESS
LA R4,4(R4) SLU RIC SSCPNAME ADDRESS
IC R5,0(R4) SLU RIC SSCPNAME LENGTH
AR R4,R5 SLU RIC REAL NETID ADDRESS VECTOR MINUS ONE
LA R4,1(R4) SLU RIC NETID LENGTH ADDRESS
IC R5,0(R4) SLU RIC NETID LENGTH
AR R4,R5 SLU RIC REAL LUNAME ADDRESS VECTOR MINUS ONE
LA R4,1(R4) SLU RIC REAL LUNAME LENGTH ADDRESS
IC R5,0(R4) SLU RIC REAL LUNAME LENGTH
LTR R5,R5 TEST SLU REAL NAME FOR ZERO LENGTH
BE GWPTHDEF YES, NO SLU REAL NAME - USE DEFAULT GWPATH
BCTR R5,0 SLU RIC REAL LUNAME LENGTH MINUS ONE
LA R4,1(R4) SLU RIC REAL LUNAME ADDRESS
*
** COMPARE THE SLU RIC LUNAME TO APPLICATION NAME: A50CICS OR A60CICS
*
EX R5,CICS50 COMPARE SLU RIC REAL LUNAME TO ACICS50
BE GWPTHS2A YES, REORDER GWPATH AS NECESSARY
EX R5,CICS60 COMPARE SLU RIC REAL LUNAME TO ACICS60
BE GWPTHS2B YES, REORDER GWPATH AS NECESSARY
*
** IF NEITHER THE PLU OR SLU RIC REAL LUNAME EQUALS A50CICS OR A60CICS
** THEN SET RETURN CODE TO PROCEED WITH DEFAULT GWPATH SELECTION LIST
*
GWPTHDEF EQU *
LA R15,4 RETURN CODE TO USE DEFAULT GWPATH LIST
B RETURN RETURN CONTROL TO VTAM
*
** PLU OR SLU RIC REAL LUNAME EQUALS A50CICS -
** SAVE FIRST GWPATH ENTRY NAME AND SUBAREA ADDRESS IN USER
** DATA STORAGE
*
GWPTHS2A EQU *
MVC 8(8,R1),GWNCP30 FIRST GWPATH NAME MUST BE GWNCP30
LA R5,30 FIRST GWPATH SUBAREA MUST BE 30
ST R5,16(R1) SAVE IN USER DATA STORAGE
B GWPTHS3 CONTINUE, REORDER GWPATH LIST IF NECESSARY
*
** PLU OR SLU RIC REAL LUNAME EQUALS A60CICS -
** INITIALIZE REGISTERS TO MODIFY GWPATH SELECTION LIST AS NECESSARY
*
GWPTHS2B EQU *
MVC 8(8,R1),GWNCP40 FIRST GWPATH NAME MUST BE GWNCP40
LA R5,40 FIRST GWPATH SUBAREA MUST BE 40
ST R5,16(R1) SAVE IN USER DATA STORAGE
B GWPTHS3 CONTINUE, REORDER GWPATH LIST IF NECESSARY
*
** INSTRUCTIONS EXECUTED TO COMPARE: PLU RIC REAL LUNAME TO A50CICS
** OR A60CICS
** SLU RIC REAL LUNAME TO A50CICS
** OR A60CICS
*
CICS50 CLC 0(8,R4),=CL8'A50CICS' LUNAME COMPARE INSTRUCTION
CICS60 CLC 0(8,R4),=CL8'A60CICS' LUNAME COMPARE INSTRUCTION
*
** CONSTANTS - GATEWAY NCP NAMES
*
GWNCP30 DC CL8'GWNCP30' GATEWAY NCP NAME - GWNCP30
GWNCP40 DC CL8'GWNCP40' GATEWAY NCP NAME - GWNCP40
*
***********************************************************************
|