Create 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 .⋮ * * 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 ⋮ ENDParent topic: System/390 assembler-language examples