Displaying chained data areas

Using the RUNCHAIN command (see RUNCHAIN, storage can be scanned for a chain of linked control blocks. The RUNCHAIN command can be invoked either by entering RUNCHAIN on any interactive report command line, or by assigning RUNCHAIN to a PF key. When invoked, you are shown a popup panel similar to the following:
Figure 1. Sample Storage RUNCHAIN Command entry display
  File  View  Services  Help
┌───────────────────────── Storage RUNCHAIN Command ──────────────────────────┐
│                                                                             │
│ Enter the required fields and press Enter .                                 │
│                                                                             │
│ Start Address  . . . . . . .                  
│ Max Number Control Blocks    9999  (Decimal)                                │
│ Forward Pointer Offset . . .       (Hex)                                    │
│ End of Chain Identifier  . .                    (Hex, Default Values: All   │
│                                                 0's and all F's)            │
│ Eyecatcher Text  . . . . . .                                                │
│ Eyecatcher Offset  . . . . .       (Hex)                                    │
│                                                                             │
│                                                                             │
│  F1=Help     F3=Exit    F12=Cancel                                          │
└─────────────────────────────────────────────────────────────────────────────┘
  000011    n/a        01  PARM1         PIC X(4) .
  000012    n/a        01  PARM2.

Data Field Values:
  PARM1   = 0001
  PARM2   = HEADING FOR HFZXSNAP
 F1=Help      F3=Exit      F5=RptFind   F6=Actions   F7=Up        F8=Down
F10=Left     F11=Right

The Start Address is 64-bit enabled. For details, see Specifying 64-bit addresses.

If a 31-bit Start Address is specified:
  • The forward pointer at the Forward Pointer Offset is assumed to be a 31-bit address.
  • The End of Chain Identifier is assumed to be a 32-bit hexadecimal value. If less than 8 hexadecimal digits are specified, then the specified value is padded with leading zeroes to form a 32-bit hexadecimal value.
If a 64-bit Start Address is specified:
  • The forward pointer at the Forward Pointer Offset is assumed to be a 64-bit address.
  • The End of Chain Identifier is assumed to be a 64-bit hexadecimal value. If less than 16 hexadecimal digits are specified, then the specified value is padded with leading zeroes to form a 64-bit hexadecimal value.

For a given Start Address and Forward Pointer Offset, the RUNCHAIN command follows the chain of control blocks until one of the following end conditions is met:

  1. The number of control blocks scanned has exceeded the maximum number set by the user (the default value is 9999).
  2. The forward pointer of the current control block contains one of the 'End of Chain' values. These values are:
    • 00000000 for a 31-bit Start Address or 0000000000000000 for a 64-bit Start Address.
    • FFFFFFFF for a 31-bit Start Address or FFFFFFFFFFFFFFFF for a 64-bit Start Address.
    • The initial start address, implying the chain has looped
    • A user supplied End Of Chain Identifier:
      • The value specified is automatically padded with leading zeroes to a length of 8 digits for a 31-bit Start Address or 16 digits for a 64-bit Start Address. A 64-bit address might include an underscore (see Start Address above for details).
      • If more than 8 digits are specified for a 31-bit Start Address, then the value is left truncated to 8 digits.
      • If more than 16 digits are specified for a 64-bit Start Address, and the address does not include an underscore, then the value is left truncated to 16 digits.
  3. The forward pointer of the current control block points to invalid or unavailable storage.

For each control block, its address and the first 32 bytes of data are shown.

Optionally, you can provide an eyecatcher and its offset in the control block, in which case, for each control block, the text at the specified offset is compared against the supplied text, and if they do not match, then a warning message is issued.

As an example of the RUNCHAIN command, the Storage RUNCHAIN Command entry display might be specified as follows:
  File  View  Services  Help
┌───────────────────────── Storage RUNCHAIN Command ──────────────────────────┐
│                                                                             │
│ Enter the required fields and press Enter .                                 │
│                                                                             │
│ Start Address  . . . . . . . 0005C000                                       │
│ Max Number Control Blocks    9999  (Decimal)                                │
│ Forward Pointer Offset . . . 1C    (Hex)                                    │
│ End of Chain Identifier  . .                    (Hex, Default Values: All   │
│                                                 0's and all F's)            │
│ Eyecatcher Text  . . . . . . DFHSMQPH                                       │
│ Eyecatcher Offset  . . . . . 2     (Hex)                                    │
│                                                                             │
│                                                                             │
│  F1=Help     F3=Exit    F12=Cancel                                          │
└─────────────────────────────────────────────────────────────────────────────┘
  000011    n/a        01  PARM1         PIC X(4) .
  000012    n/a        01  PARM2.

Data Field Values:
  PARM1   = 0001
  PARM2   = HEADING FOR HFZXSNAP
 F1=Help      F3=Exit      F5=RptFind   F6=Actions   F7=Up        F8=Down
F10=Left     F11=Right
Pressing Enter, the following display is presented:
  File  View  Services  Help
───────────────────────────────────────────────────────────────────────────────
Runchain starting at address 0005C000. 1 Control blocks        Line 1 Col 1 80
Command ===> ________________________________________________ Scroll ===> CSR 
CICS DUMP: SYSTEM=QXPM2C61 CODE=ASRA ID= MVS2 2019/06/25 13:47:55 Address Hex (First 32 Bytes Of Data) 0005C000 00306EC4 C6C8E2D4 D8D7C840 40404040 C1D76DE3 C3C1F2F4 002AA000 0005 0005B000 00306EC4 C6C8E2D4 D8D7C840 40404040 C1D76DE3 C3C1F2F4 0005C000 0005 0005A000 00306EC4 C6C8E2D4 D8D7C840 40404040 C1D76DE3 C3C1F2F4 0005B000 0005 00059000 00306EC4 C6C8E2D4 D8D7C840 40404040 C1D76DE3 C3C1F2F4 0005A000 2E80 2E80CCCC Invalid eyecatcher. Expected: >DFHSMQPH Found : 24.....Q. 2E80CCCC C3C1F2F4 2E80CC14 1ED82728 C0010100 00000000 00000600 00059000 002A 002AA000 00306EC4 C6C8E2D4 D8D7C840 40404040 C1D76DE3 C3C1F2F4 2E80CCCC 0005 End of RUNCHAIN 6 Control Blocks processed *** Bottom of data. F1=Help F3=Exit F5=RptFind F6=Actions F7=Up F8=Down F10=Left F11=Right

To exit from the RUNCHAIN command, enter EXIT (PF3).