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.

     %INCLUDE SYSLIB(CMQP);
     %INCLUDE SYSLIB(CMQEPP);
     :
/*********************************************************/
/* WORKING STORAGE DECLARATIONS                          */
/*********************************************************/
DCL COMPCODE                  BINARY FIXED (31);
DCL REASON                    BINARY FIXED (31);
DCL HCONN                     BINARY FIXED (31);
DCL HOBJ                      BINARY FIXED (31);
DCL OPTIONS                   BINARY FIXED (31);

  ·
  ·
  ·
DCL MODEL_QUEUE_NAME CHAR(48) INIT('PL1.REPLY.MODEL'); DCL DYNAMIC_NAME_PREFIX CHAR(48) INIT('PL1.TEMPQ.*'); DCL DYNAMIC_QUEUE_NAME CHAR(48) INIT(' ');
  ·
  ·
  ·
/*********************************************************/ /* LOCAL COPY OF OBJECT DESCRIPTOR */ /*********************************************************/ DCL 1 LMQOD LIKE MQOD;
  ·
  ·
  ·
/*********************************************************/ /* SET UP OBJECT DESCRIPTOR FOR OPEN OF REPLY QUEUE */ /*********************************************************/ LMQOD.OBJECTTYPE =MQOT_Q; LMQOD.OBJECTNAME = MODEL_QUEUE_NAME; LMQOD.DYNAMICQNAME = DYNAMIC_NAME_PREFIX; OPTIONS = MQOO_INPUT_EXCLUSIVE; CALL MQOPEN (HCONN, LMQOD, OPTIONS, HOBJ, COMPCODE, REASON); /*********************************************************/ /* TEST THE COMPLETION CODE OF THE OPEN CALL. */ /* IF THE CALL HAS FAILED ISSUE AN ERROR MESSAGE */ /* SHOWING THE COMPLETION CODE AND THE REASON CODE. */ /* IF THE CALL HAS SUCCEEDED THEN EXTRACT THE NAME OF */ /* THE NEWLY CREATED DYNAMIC QUEUE FROM THE OBJECT */ /* DESCRIPTOR. */ /*********************************************************/ IF COMPCODE ¬= MQCC_OK THEN DO;
  ·
  ·
  ·
CALL ERROR_ROUTINE; END; ELSE DYNAMIC_QUEUE_NAME = LMQOD_OBJECTNAME;