Find storage blocks which are defined with a Storage ID within a Central Version
search cancel

Find storage blocks which are defined with a Storage ID within a Central Version

book

Article ID: 14647

calendar_today

Updated On:

Products

IDMS IDMS - Database IDMS - ADS

Issue/Introduction

It might sometimes be interesting to know what storage has been allocated within a CA IDMS Central Version and additionally know if there are storage blocks which have been allocated with a storage ID (STGID).

These storage IDs most of the time, are defined with readable, displayable characters, but they can also be a hexadecimal string.



Is it possible to display these storage blocks and their storage IDs, and secondly, if these storage IDs are not displayable, is it possible to display them in hexadecimal notation ?

 

Environment

IBM z/OS, z/VSE, z/VM

Resolution

The contents of CA IDMS Storage Pools can be displayed by means of the LOOK task, using the STORAGE POOL parameter.

Example :

LOOK  STORAGE POOL                                                            
IDMSLOOK  -  OPSYS=z/OS         Release 19.0 Service pack 4   tape GJJ04I      
     STORAGE POOL                                                              
                                                                               
     Addr=00060008  Size=00003000  Task=0    Owner=CSA            -SYSCSA Short-
     Addr=3AD0C008  Size=00153000  Task=0    Owner=CSA            -SYSCSA Short-
     Addr=3F2D2008  Size=00007C00  Task=0    Owner=CSA            -SYSCSA Short-
(K)  Addr=3F0DE008  Size=00000480  Task=1    Owner=00237FC8       DB Short     
(K)  Addr=3F329008  Size=00000980  Task=12   Owner=0023E378       Systce Short 
     Addr=00063008  Size=0000A980  Task=1    Owner=CSA            -SYSCSA Short-
(K)  Addr=3F317008  Size=00000880  Task=12   Owner=0023E378       Systce Short 
     Addr=0006F008  Size=00000080  Task=1    Owner=00237FC8       Systce Short 
     Addr=0006DA88  Size=00001000  Task=1    Owner=CSA            -SYSCSA Short-
     Addr=3F0DF008  Size=00000100  Task=0    Owner=002376B8  HCLW DB Short     
     Addr=3EB1D008  Size=00000780  Task=79   Owner=00248FA8       User Short   
(K)  Addr=3F138008  Size=00000080  Task=67   Owner=00248FA8       DB Short     
     Addr=3F334008  Size=00000D80  Task=79   Owner=CSA            -SYSCSA Short-
(K)  Addr=3EB32008  Size=00000080  Task=26   Owner=CSA       WSV2 Shared Short 
     Addr=3F30C208  Size=00000080  Task=14   Owner=CSA            -SYSCSA Short-
     Addr=3EB1C008  Size=00000400  Task=27   Owner=00246B68  SBà. Shared Short 

The output from this command shows the storage address, its size, the task number that acquired the storage, the owner of the storage, the Storage ID (if it exists) and the type of storage.

In this example, "HCLW", "WSV2" and "SBà." are storage IDs. The last one clearly contains non-displayable characters.

If you want to see this storage ID in hexadecimal representation, you can do this as follows.

  1. Note the address of the storage block, in this case 3EB1C008.
  2. Subtract 8 from it, giving 3EB1C000
  3. Issue a DCMT DIS MEMORY command with this address :

DCMT   D MEM 3EB1C000 32                                                   
 <Addr>   <Offset>                 <Hex>                    <Character>    
3EB1C000  00000000  3AE4A320 00000400 E6C1C9E3 E3C1C25C  *.Ut.....WAITTAB**
3EB1C010  00000010  000003AC 00000007 3EB1C044 0000002D  *..........{à....*

  The first fullword, 3AE4A320, is the address of the storage RCE. This RCE contains the storage ID if one is defined.

To display the contents of this storage ID in hexadecimal, you need to issue another DCMT DIS MEMORY command, this time, for the RCE itself :

DCMT   D MEM 3AE4A320 32                                                   
 <Addr>   <Offset>                 <Hex>                    <Character>    
3AE4A320  00000000  01420002 0000001B 00000400 3EB1C000  *.â............{.*
3AE4A330  00000010  3AE403B0 3AE40288 00000000 E2C24432  *.U.^.U.h....SBà.*

The storage ID is found at offset X'1C' in the RCE : its contents in hexadecimal is X'E2C24432'.

 

Note :

The above procedure used two DCMT DIS MEMORY commands in order to find the storage RCE. As of CA IDMS release 18.0, it is possible to use "indirect addressing" with DCMT DIS MEMORY commands. This feature can be used here to display the storage RCE with only ONE DCMT command, as follows :

DCMT   D MEM 3EB1C000 % 32                                                    
 <Addr>   <Offset>                 <Hex>                    <Character>       
3AE4A320  00000000  01420002 0000001B 00000400 3EB1C000  *.â............{.*   
3AE4A330  00000010  3AE403B0 3AE40288 00000000 E2C24432  *.U.^.U.h....SBà.*   

The address 3EB1C000 is the address of the beginning of the storage block (see point 1 and 2 above).

The % sign tells the DCMT command that the address in front of the % sign is an indirect address, meaning, we do not want to see the contents of the storage at 3EB1C000, but use the contents of the first fullword found at 3EB1C000 as a "new address" and display the contents found at that new (indirect) address.

 

 

 

 

 

 

 

 

 

 

 

 

Additional Information

For more information about the

LOOK STORAGE, see

https://docops.ca.com/ca-idms-ref/19/en/ca-idms-system-tasks-and-operator-commands/system-tasks/look-system-task

DCMT DISPLAY MEMORY, see

https://docops.ca.com/ca-idms-ref/19/en/ca-idms-system-tasks-and-operator-commands/dcmt-display-commands/dcmt-display-memory-command