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 WebSphere(R) 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
  ·
  ·
  ·
END