How can I code a #WAIT macro in a CA IDMS assembler program to wait on a mixture of internal and external z/OS ECBs?

Document ID : KB000022457
Last Modified Date : 14/02/2018
Show Technical Document Details

Question:

A CA IDMS assembler program needs to wait on an external z/OS ECB and an internal IDMS ECB (e.g. a #SETIME POST ECB). An external ECB is a single fullword that will be posted by a z/OS system task. An internal CA-IDMS ECB is 3 fullwords and posted by an internal IDMS task.

How can I code a #WAIT macro to do this?

 

Answer:

To wait for multiple ECBs the program needs to use the #WAIT macro and an ECB list.

The wait should be coded like this:

   #WAIT ECBLIST=Ecblist1  

The ECB list would be defined as follows:

Ecblist1 DS 0F
         DC A(ecb1) ecb1 is the 1 fullword external ECB address
         DC F'0'    no flag on first byte indicates z/OS external ECB 
         DC A(ecb2) ecb2 is the 3 fullword internal ECB address
         DC X'E0'   X'80' flag indicate end of list
*                   X'60' flag indicates some kind of internal ECB
         DC XL3'00'

Additional Information:

For a description of the format of the ECB list, see dsect #ELEDS in https://docops.ca.com. For a description of the 3 fullword CA IDMS ECB see dsect #ECBDS.