BMS requires a fixed format for route lists. Each entry in the list is
16 bytes long, as follows:
Table 43. Standard route list entry format
Bytes |
Contents |
0-3 |
Terminal or logical unit identifier (four characters,
including trailing blanks), or blanks |
4,5 |
LDC mnemonic (two characters) for logical units with LDC
support, or blanks |
6-8 |
Operator identifier, or blanks |
9 |
Status flag for the route entry |
10-15 |
Reserved; must contain blanks |
Either a terminal
or an operator identifier must be present in each entry. A Logical Device
Component(LDC) may accompany either; see LDCs and routing for more information
about LDCs.
The entries in the route list normally follow one another in sequence.
However, they do not all have to be adjacent. If you have a discontinuity
in your list, you end each group of successive entries except the last group
with an 8-byte chain entry that points to the first entry in the next group.
This entry looks like this:
Table 44. Route list chain entry format
Bytes |
Contents |
0,1 |
-2 in binary halfword format (X'FFFE') |
2,3 |
Reserved |
4-7 |
Address of the first entry in the next group of contiguous
entries |
The end of the entire list is signalled by a 2-byte entry containing a
halfword value of -1 (X'FFFF').
Your list may consist of as many groups as you wish. There is an upper
limit on the total number of destinations, but it depends on many variables;
if you exceed it, BMS abends your task with abend code ABMC.
On return from a ROUTE command, BMS raises condition codes to signal errors
in your list:
- RTESOME
- means that at least one of the entries in your route list could not
be used and was skipped. The default action is to continue the routing operation,
using the destinations that were processed successfully.
- RTEFAIL
- means that none of the destinations in your list could be used, and
therefore no routing environment has been set up. The default action is to
return control to your task. You should test for this condition, consequently,
because with no routing environment, a subsequent BMS SEND command goes to
the principal facility, which is probably not your intention.
In addition to the general information reflected by RTESOME and RTEFAIL,
BMS tells you what it did with each entry in your list by setting the status
flag (byte 9). A null value (X'00') means that the entry was entirely
correct. The high-order bit tells you whether the entry was used or skipped,
and the other bits tell you exactly what happened. Here are the meanings of
each bit being on:
- ENTRY SKIPPED (X'80')
- The entry was not used. When this bit is on, another bit is also on
to indicate the reason.
- INVALID TERMINAL IDENTIFIER (X'40')
- There is no terminal definition for the terminal named in the entry.
The entry is skipped.
- TERMINAL NOT SUPPORTED UNDER BMS (X'20')
- The terminal named in the route list entry is of a type not supported
by BMS, or it is restricted from receiving routed messages. The entry is skipped.
- OPERATOR NOT SIGNED ON (X'10')
- The operator named in the entry is not signed on. Any of these conditions
causes this flag to be set:
- Both an operator identifier and a terminal identifier were specified,
and the operator was not signed on at the terminal. The entry is not skipped.
- An operator identifier was specified without a terminal identifier, and
the operator was not signed on at any terminal. The entry is skipped.
- OPCLASS was specified on the ROUTE command, a terminal identifier was
specified in the route list entry, and the operator signed on at the terminal
did not have any of the specified operator classes. The entry is not skipped.
- OPERATOR SIGNED ON AT UNSUPPORTED TERMINAL (X'08')
- Only an operator identifier was specified in the route list entry, and
that operator was signed on at a terminal not supported by BMS or not eligible
to receive routed messages. The entry is skipped. The name of the terminal
is returned in the terminal identifier field of the entry.
- INVALID LDC MNEMONIC (X'04')
- Either of these conditions causes this flag to be set:
- The LDC mnemonic specified in the route list is not defined for this terminal.
That is, the terminal supports LDCs but it has no LDC list, or its LDC list
is extended but does not contain this entry.
- The device type for this LDC entry is different from that of the first
entry in the route list with an LDC (only one LDC device type is allowed,
as explained in LDCs and routing).
The entry is skipped.
Note:
CICS® provides source code which defines a standard route list
entry and the values you need to test status flag bit combinations. You can
insert this code into your program with a COPY or INCLUDE of the member DFHURLDS,
in the same way you can include the BMS attention identifier or attribute
byte definitions.
[[ Contents Previous Page | Next Page Index ]]