Assembler example: Creating a dynamic queue
This example demonstrates how to use the MQOPEN call to create a dynamic queue.
This extract is not taken from the sample applications supplied with IBM® MQ.
For the names and locations of the sample applications, see Using the sample procedural programs for z/OS®.
⋮
*
* R5 = WORK REGISTER.
*
OPEN DS 0H
*
MVC WOD_AREA,MQOD_AREA INITIALIZE WORKING VERSION OF
* MQOD WITH DEFAULTS
MVC WOD_OBJECTNAME,MOD_Q COPY IN THE MODEL Q NAME
MVC WOD_DYNAMICQNAME,DYN_Q COPY IN THE DYNAMIC Q NAME
L R5,=AL4(MQOO_OUTPUT) OPEN FOR OUTPUT AND
A R5,=AL4(MQOO_INQUIRE) INQUIRE
ST R5,OPTIONS
*
* ISSUE MQI OPEN REQUEST USING REENTRANT
* FORM OF CALL MACRO
*
CALL MQOPEN, X
(HCONN, X
WOD, X
OPTIONS, X
HOBJ, X
COMPCODE, X
REASON),VL,MF=(E,CALLLST)
*
LA R5,MQCC_OK CHECK THE COMPLETION CODE
C R5,COMPCODE FROM THE REQUEST AND BRANCH
BNE BADCALL TO ERROR ROUTINE IF NOT MQCC_OK
*
MVC TEMP_Q,WOD_OBJECTNAME SAVE NAME OF TEMPORARY Q
* CREATED BY OPEN OF MODEL Q
*
⋮
BADCALL DS 0H
⋮
*
*
* CONSTANTS:
*
MOD_Q DC CL48'QUERY.REPLY.MODEL' MODEL QUEUE NAME
DYN_Q DC CL48'QUERY.TEMPQ.*' DYNAMIC QUEUE NAME
*
CMQODA DSECT=NO,LIST=YES CONSTANT VERSION OF MQOD
CMQA MQI VALUE EQUATES
*
* WORKING STORAGE
*
DFHEISTG
HCONN DS F CONNECTION HANDLE
OPTIONS DS F OPEN OPTIONS
HOBJ DS F OBJECT HANDLE
COMPCODE DS F MQI COMPLETION CODE
REASON DS F MQI REASON CODE
TEMP_Q DS CL(MQ_Q_NAME_LENGTH) SAVED QNAME AFTER OPEN
*
WOD CMQODA DSECT=NO,LIST=YES WORKING VERSION OF MQOD
*
CALLLST CALL ,(0,0,0,0,0,0,0,0,0,0,0),VL,MF=L LIST FORM
OF CALL
* MACRO
⋮
END