Example xtsereq global user exit program – IBM SC33-1683-02 User Manual
Page 847

*=====================================================================*
* ROUTE_REQUEST: Ship request to remote system
*
*
An entry has been found in the TS_Routing Table for this TS
*
*
Queue Name. The request is modified by adding a SYSID to the
*
*
command and renaming the queue if required.
*
*
*
* Registers:
*
*
R1 = Work register
*
*
R6 = Link Register
*
*
R7 = Address of current Queue name
(Set on entry)
*
*
R8 = Command Parameter List (CLPS)
*
*
R9 = Address of table entry
(Set on entry)
*
*
R12= Work register (Shared_storage)
*
*
*
* Logic:
*
*
Route_Request:
*
*
Call Getmain_Shared
*
*
If entry_name ¬= new_name then
*
*
Copy new_name into shared storage
*
*
Address the command plist
*
*
Update ADDR1 to point to address of the new TS QUEUE name
*
*
End If
*
*
Copy new_sysid into shared storage
*
*
Address the command plist
*
*
Update ADDR7 to point to the address of the new SYSID
*
*
Set the SYSID existence bit in the EID
*
*
Set the Hi-order bit in last address in CLPS
*
*
Return
*
*=====================================================================*
ROUTE_REQUEST DS 0H
BAL
R6,GETMAIN_SHARED
GETMAIN SHARED storage
L
R12,UEPTQTOK
Fetch address of token
L
R12,0(R12)
Fetch Shared storage address
USING SHARED_STORAGE,R12 Address using R12
*
*
Update the Queue Name in CLPS
USING TABLE_ENTRY,R9
R9 points to the table entry
CLC
NEW_NAME,0(R7)
Is the new_name=current_queue name?
BE
ROUTE1
..Yes No need to update Queue Name
MVC
SHARED_NAME,NEW_NAME Copy QNAME into shared storage
L
R8,UEPCLPS
Address the CLPS..
USING TS_ADDR_LIST,R8
..with Register 8
LA
R1,SHARED_NAME
Fetch address of the new QNAME
ST
R1,TS_ADDR1
Store address in TS_ADDR1
DROP R8
Drop TS_ADDR_LIST
*
Figure 113. Example exit program for the XTSEREQ exit (Part 9 of 16)
example XTSEREQ global user exit program
Appendix E. The example program for the XTSEREQ global user exit, DFH$XTSE
815