Channel-to-channel access method trace stack (LXB trace)

The LXB trace stack is designed to be used in conjunction with the module listings to provide a detailed trace of instruction flow through the channel-to-channel (CTC) access method.

The trace stack is located in the LXB at label LXBCTRAC, 288 (X'E4') bytes into the LXB, and is 50 bytes long. The only modules that manipulate the LXB trace stack are the CTC access method modules, DFSCMC00, DFSCMC10, DFSCMC40, and DFSCMC50. The code that manipulates the LXB trace stack is unconditionally operative. (That is, it is not conditionally assembled and the function is not controlled by the operator command.) If level 3 or 4 of the IMS trace command is in effect, the LXB is included among the areas traced to the log.

Most LXB trace stack entries are 2 bytes long; a few are 1 byte long. Usually, each invocation of one of the access method modules causes a trace entry to be placed in the LXB trace stack. In order to create a trace entry, the module first moves (pushes) the trace stack 2 (or 1) bytes backward (toward low storage), thereby deleting the oldest portions of the trace stack. The module then inserts the new entry at the high (storage address) end of the trace stack. In rare instances, when the asynchronous modules DFSCMC40 and DFSCMC10 interrupt execution of another CTC access method module, the trace entries might overlap and thus might not be meaningful.

The format and meaning of the possible LXB trace entries follow:
Byte 1, bit 0
If on, this is a 2-byte entry; otherwise it is a 1-byte entry.
Byte 1, bits 1-3
This identifies the module and, if applicable, the routine within the module that made the entry in the LXB.
Value
Meaning
1
DFSCMC40, attention DIE routine
2
DFSCMC10, channel-end appendage
3
DFSCMC10, abnormal-end appendage
4
DFSCMC40, I/O request DIE routine
5
DFSCMC10, shutdown appendage
6
DFSCMC50, shutdown processing routine
7
DFSCMC00, MSC analyzer
Byte 1, bits 4-7
This identifies what processing was performed. The meaning of the bits, as shown below, is dependent on the routine that made the entry in the LXB.
Byte 2
This is an input byte that the routine keys on. This is also dependent on the routine and is described below.