IBM SC34-6814-04 User Manual
Page 903

*=====================================================================*
*
TS_REQUEST - Invoked at XTSEREQ exit point
*
*
Determine the TS Queue Name and scan the TS_Routing_Table for
*
*
a match. If an entry exists in the table, then check the action
*
*
field and call the ROUTE_REQUEST or LOCAL_REQUEST routines.
*
*
*
*
The TS_Routing_Table is made up of entries with the following
*
*
structure:
*
*
*
*
TABLE_ENTRY:
*
*
----------------------------------------------------------
*
*
| Entry_Name | New_Name |
QOR_Sysid |
Action |
*filler* |
*
*
| Char 8
| Char 8
|
Char 4
|
Bin 1
|
Char 3
|
*
*
----------------------------------------------------------
*
*
Last Entry is indicated by special TS_Queue Name
*
*
*
*
Registers:
*
*
R1 = Work register
*
*
R7 = Set to the TS Queue Name
*
*
R8 = Command Parameter List (CLPS)
*
*
R9 = Points to the next entry in the TS_Routing_Table
*
*
R15= Work register
*
*
*
*
Logic:
*
*
TS_Request:
*
*
If called recursively then
*
*
call Error(Recursive_Call1)
*
*
Else
*
*
If the Command GROUP code is not a TS request then
*
*
call Error(Invalid_Group_Code1)
*
*
Else
*
*
Clear the UEPTQTOK
*
*
Address the Command Plist UEPCLPS
*
*
Fetch tsq_name
*
*
Fetch start of TS_Routing_Table
*
*
Check_Next_Entry:
*
*
Get the next table entry
*
*
Select (entry_name)
*
*
When (last_entry) call Entry_Not_Found
*
*
When (tsq_name)
*
*
Select (entry_action)
*
*
When (Route) call Route_Request
*
*
When (Local) call Local_Request
*
*
Otherwise call Error(Invalid_Table_Action)
*
*
End Select
*
*
Otherwise
*
*
Goto Check_Next_Entry
*
*
End Select
*
*
End If
*
*
End If
*
*
Return
*
Figure 138. Example exit program for the XTSEREQ exit (part 5)
Appendix F. The example program for the XTSEREQ global user exit, DFH$XTSE
881