Message destinations
Destinations can be specified for your routed message in several ways: by requesting certain classes of operator, naming a particular operator or naming a particular terminal.
- You can request that certain classes of operators receive the message, by using the OPCLASS option of the ROUTE command. Classes are associated with an operator in the RACF® user definition or a CICS® sign-on table entry.
- You can name particular operators who are to receive the message by using a route list, to which you point with the LIST option of the ROUTE command. Operators are identified by a three-character OPIDENT value, which is also assigned in the RACF definition or a sign-on table entry.
- You can name particular terminals which are to receive the message; this is also done with a route list. Terminals are identified by their 4-character TERMID value, and, for terminal types to which they apply, a 2-character logical device code.
Eligible terminals
To format a message properly for a particular destination, BMS needs to know the characteristics of the terminal for which it is formatting. This is true even for destinations that you designate by operator or operator class.
The first step in processing a route list, therefore, is to translate your destinations to a list of terminals to which the message can be delivered. This “eligible terminal” list combines the information in your route list and your OPCLASS specification with the state of the terminal network at the time of the ROUTE command.
Later, when your message is ready for delivery, BMS uses this list to decide which terminals get your message. A terminal must be on the list to receive the message, but its presence there does not guarantee delivery. There might be operator restrictions associated with the terminal and, because delivery occurs later in time, the status or even the nature of the terminal can have changed.
Both at the time the list is built and at the time of delivery, BMS is restricted to the terminal definitions installed in its own CICS region (where the routing task is running, or ran) and might not have all the terminal definitions you expect. First, terminals that are autoinstalled might not be logged on either at the time of the ROUTE, excluding them from inclusion on the list, or at the times sending is attempted, preventing delivery.
In a multiple-region environment, there is the additional possibility that terminals known to one region might not be known to another. It depends on how they are defined, as explained in TYPETERM definition attributes . In particular, if a terminal definition is shared among regions by designating it as SHIPPABLE in the region that owns it, the terminal is not defined in any other region until something occurs to cause shipment there. This typically happens the first time the terminal routes a transaction to the region in question. Consequently, a ROUTE in this region cannot include the terminal before the first such event occurs.
The following sections describe how BMS builds the list of eligible terminals. This occurs at the time of the ROUTE command:
Destinations specified with OPCLASS only
- The terminal is of a type supported by BMS.
- The terminal can receive routed messages not addressed to it (ROUTEDMSGS (ALL) in the terminal definition).
- An operator is signed on at the terminal.
- The operator belongs to one of the operator classes in your OPCLASS list.
OPCLASS and LIST omitted
If you do not specify the operator class or a route list, BMS puts every terminal that meets the first two conditions above on the list, and sets no operator restrictions on delivery. In a network where many terminals are eligible to receive all routed messages, this is a choice you almost certainly want to avoid.
Route list provided
- If the entry contains a terminal identifier but no operator identifier,
the terminal goes on the eligible list, provided it is defined, of
a type supported by BMS, and eligible to receive routed messages.
If BMS cannot find the terminal definition, it sets the “entry skipped”
and “invalid terminal identifier” bits (X'C0') in the status
flag of the route list entry; if the terminal exists but is not supported
by BMS or is not allowed to receive any routed messages, the “entry
skipped” and “terminal not supported under BMS” bits get set (X'A0'). Note: The eligibility of a terminal to receive routed messages is governed by the ROUTEDMSGS option in the terminal definition. Three values are possible: a terminal can be allowed to receive all routed messages, only messages routed to it by terminal or operator name, or no routed messages at all. If you specified OPCLASS as well as a route list, BMS checks whether an operator belonging to one of the classes you listed is signed on at the terminal. If not, BMS sets the “operator not signed on” bit (X'10') in the status flag for the entry to inform you, but includes the terminal anyway. There are no operator restrictions associated with the list entry, even when you specify operator classes.
- If the entry contains both a terminal and an operator identifier,
the terminal identifier is checked in the same way as it is without
an operator identifier, and the same errors can occur. If the terminal
passes these tests, it goes on the eligible list. However, the entry
is marked such that the message can be delivered only when the operator
named is signed on at the same terminal.
If this operator is not signed on to the terminal at the time of the ROUTE command, BMS notifies you by turning on the “operator not signed on” bit (X'10') in the status flag, but the terminal goes on the delivery list regardless of sign-on status. (OPCLASS is ignored entirely when an operator identifier is present.)
- If the entry contains only an operator identifier, BMS searches
the terminal definitions until it finds one where the operator is
signed on. (The operator might be signed on at additional terminals,
but BMS ignores these.) If this terminal is of a type not supported
by BMS, or if the terminal cannot receive routed messages, BMS sets
the “entry skipped” and “operator signed on at unsupported terminal”
bits (X'88') in the status flag. It also enters the terminal
identifier in your route list. If the terminal is suitable, BMS treats
the entry as if you had specified both that terminal and operator
identifier, as previously described.
If the operator is not signed on anywhere, BMS sets the “entry skipped” and “operator not signed on” bits (X'90') in the status flag.