Assembler example: Opening an existing queue
This example demonstrates how to use the MQOPEN call to open a queue that has already been defined. It shows how to specify two options.
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,Q_NAME SPECIFY Q NAME TO OPEN
LA R5,MQOO_INPUT_EXCLUSIVE OPEN FOR MQGET CALLS
*
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
*
⋮
BADCALL DS 0H
⋮
*
*
* CONSTANTS:
*
Q_NAME DC CL48'REQUEST.QUEUE' NAME OF QUEUE TO OPEN
*
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
*
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