A request/response unit processing element (RUPE) represents
the unit of work VTAM® must
perform for a given request or response received from the network. VTAM queues RUPEs to a process
anchor block (PAB). Knowing what type of work is queued to a PAB may
be important in resolving storage and performance problems. Use PABSCAN
to scan a chain of RUPEs queued to a PAB and obtain a summary of the
RUPEs by RU type.
You may scan all work elements on the PAB,
or limit the search to RUPEs containing a specific value in one or
more of the following fields:
- Destination address field (DAF)
- Origin address field (OAF)
- Request/Response unit (RUPERQD,RUPERSD)
- A user-specified location within the RUPE
For each work element that is selected, the RU is extracted
and counted. After all of the selected work elements have been counted,
a summary showing the number of work elements containing each RU type
is displayed.
Operands
You must specify one address or
one symbol to represent the first RUPE in the chain of RUPEs to be
analyzed.
- Address
- Enter 1–8 hexadecimal digits in the form X'x…' for the
address of the chain of RUPEs to be analyzed. If the address is fewer
than 8 digits, it is padded on the left with zeros.
- IPCS symbol
- Enter an IPCS symbol name that is 1–31 alphanumeric characters.
The symbol name represents the beginning of a chain of RUPEs. Do not
include a period.
Under IPCS, the symbol X represents the address
currently being displayed. If the current address is pointing to a
chain of RUPEs, this symbol may be used.
If you specify no other selection operands,
the first 100 RUPEs are analyzed and a summary of the RUPEs by RU
type is displayed.
If you use more than one of the following
operands, all of the selection criteria must be met for a RUPE to
be selected.
- Destination address field
- Only RUPEs containing this destination address field (RUPEDAF)
are eligible for selection. Specify 1–12 hexadecimal digits in the
form X'x…'. If the address is fewer than 12 digits, the rightmost
digits are compared.
- Origin address field
- Only RUPEs containing this origin address field (RUPEOAF) are
eligible for selection. Specify 1–12 hexadecimal digits in the form X'x…'.
If the address is fewer than 12 digits, the rightmost digits are compared.
- Control op code
- Only RUPEs containing this CPCB op code are eligible for selection.
The control op code must be 1–8 hexadecimal digits in the form X'x…'.
If the op code is fewer than 8 digits, it is left-aligned and compared
with the leftmost digits in the dump.
- Request/response unit
- Only RUPEs that contain this RU are eligible for selection. The
leftmost digits of field RUPERSD are compared (if RUPERSP is nonzero)
to the value entered; otherwise, the leftmost digits of RUPERQD (if
RUPERQP is nonzero) are compared to the value entered. The length
used for the comparison is the length of the value entered.
- Detail
- The default is N. Specify Y to have the following fields extracted
and displayed for each RUPE meeting the selection criteria:
- Position of RUPE on the PAB
- RUPE address
- Origin address field (RUPEOAF)
- Destination address field (RUPEDAF)
- First 4 bytes of request/response unit (if present)
- User-data at a specified displacement (if Displacement and Value
are specified)
One line of output per RUPE is produced.
- Max
- Specify the maximum number of RUPEs to be processed. The default
for MAX is 100. If MAX is not specified, only the first 100 RUPEs
on the PAB are analyzed. The maximum value for MAX is 99999. If the
maximum number of RUPEs are processed and more remain on the PAB,
PABSCAN will report the number of unprocessed elements remaining on
the PAB.
- Displacement
- Enter the displacement into the RUPE where Value is to be found.
The maximum decimal displacement is 4095 and the maximum hexadecimal
displacement is X'FFF'.
- Length
- Enter a value of 1–8 for the number of bytes you want displayed,
starting at the displacement specified in Displacement.
Length
must be used with the Displacement operand. Together, they display
any portion of a RUPE. The Length operand cannot be used with the
Value and Value Type operands.
Note: The following two operands,
Value and Value Type, must be used together with the Displacement
operand. They allow any field in a RUPE to be checked for a user-specified
value. The Value and Value Type operands cannot be used with the Length
operand.
- Value
- Only RUPEs containing this data at the displacement specified
in Displacement are eligible for selection.
Value may contain
character or hexadecimal data of 1–8 bytes in length. Character data
should consist of alphanumeric characters. Hexadecimal data should
contain an even number of up to 16 hexadecimal digits in the form X'xx…';
otherwise, the high-order half-byte is assumed to be 0.
Binary
data can be used to look at a particular bit within a byte. You may
specify 1 byte of binary data in the form X'xx'. Only 1 bit
within the byte may be selected. Therefore, you can specify only the
following hexadecimal values: 01, 02, 04, 08, 10, 20, 40, and 80.
A value with more than 1 bit set (for example, 82) will not be processed.
- Value type
- Enter B for binary, C for character, or X for hexadecimal to indicate
the type of data entered for Value.
Syntax
>>-PABSCAN--+- --ADDR--(--address--)--+------------------------->
'- --SYMBOL--(--symbol--)-'
>--+-----------------------------------+------------------------>
'- --DAF--(--destination_address--)-'
>--+------------------------------+----------------------------->
'- --OAF--(--origin_address--)-'
>--+----------------------------+------------------------------->
'- --CPK--(--cpcb_op_code--)-'
.- --NODETAIL-.
>--+------------------------------------+--+-------------+------>
'- --RU--(--request/response_unit--)-' '- --DETAIL---'
.- --MAX--(--100--)-----.
>--+-----------------------+--+----------+---------------------><
'- --MAX--(--maximum--)-' '-| DISP |-'
DISP
|-- --DISP--(--displacement--)--+-| VAL |--| TYPE |-+-----------|
'-| LEN |-----------'
VAL
|-- --VAL--(--data_value--)-------------------------------------|
TYPE
|-- --TYPE--(--data_type--)-------------------------------------|
LEN
|-- --LEN--(--length--)-----------------------------------------|
Additional information
To determine whether
an RU is a request or a response, PABSCAN first checks field RUPERSP.
If
RUPERSP is nonzero, the RU is considered to be a response. The designation
RSP, along with the contents of field RUPERSD, are used to represent
the response.
If RUPERSP is 0, field RUPERQP is then checked.
If
RUPERQP is nonzero, the RU is considered to be a request. The designation
REQ, along with the first 4 bytes of the RU from field RUPERQD, are
used to represent the request (using 4 bytes allows for the largest
of the RU headers and also picks up the format byte for RU headers
which are 3 bytes long).
If both RUPERQP and RUPERSP are 0,
the designation NORU, along with the contents of field CPCBOPC, are
used to represent the RU. The designation NORU notes the fact that
no RU (neither request nor response) pointer existed in the RUPE or
the length of the RU was 0.
Use the following syntax as an
alternative to the panel interface.
Sample output
PABSCAN SYMBOL(X)
PABSCAN Analysis
ELEM# RUPEADDR CPCBOPC RUPEOAF RUPEDAF RU USERDATA
----- -------- -------- ------------ ------------ -------- ----------------
1 062E3028 00000000 000000010003 000000010003 **NORU**
00000000 REQ occurred 1
RUPEs left on the chain 0
Elements processed 1