Put a message using MQPUT1
This example demonstrates how to use the MQPUT1 call to open a queue, put a single message on the queue, then close the queue.
This extract is not taken from the sample applications supplied with IBM MQ .⋮ * * CONNECT TO QUEUE MANAGER * CONN DS 0H ⋮ * * R4,R5,R6,R7 = WORK REGISTER. * PUT DS 0H * MVC WOD_AREA,MQOD_AREA INITIALIZE WORKING VERSION OF * MQOD WITH DEFAULTS MVC WOD_OBJECTNAME,Q_NAME SPECIFY Q NAME FOR PUT1 * LA R4,MQMD SET UP ADDRESSES AND LA R5,MQMD_LENGTH LENGTH FOR USE BY MVCL LA R6,WMD INSTRUCTION, AS MQMD IS LA R7,WMD_LENGTH OVER 256 BYES LONG. MVCL R6,R4 INITIALIZE WORKING VERSION * OF MESSAGE DESCRIPTOR
* MVC WPMO_AREA,MQPMO_AREA INITIALIZE WORKING MQPMO * LA R5,BUFFER_LEN RETRIEVE THE BUFFER LENGTH ST R5,BUFFLEN AND SAVE IT FOR MQM USE * MVC BUFFER,TEST_MSG SET THE MESSAGE TO BE PUT * * ISSUE MQI PUT REQUEST USING REENTRANT FORM OF CALL MACRO * * HCONN WAS SET BY PREVIOUS MQCONN REQUEST * HOBJ WAS SET BY PREVIOUS MQOPEN REQUEST * CALL MQPUT1, X (HCONN, X LMQOD, X LMQMD, X LMQPMO, X BUFFERLENGTH, X BUFFER, X COMPCODE, X REASON),VL,MF=(E,CALLLST) * LA R5,MQCC_OK C R5,COMPCODE BNE BADCALL * ⋮ BADCALL DS 0H ⋮ *
* CONSTANTS * CMQMDA DSECT=NO,LIST=YES,PERSISTENCE=MQPER_PERSISTENT CMQPMOA DSECT=NO,LIST=YES CMQODA DSECT=NO,LIST=YES CMQA * TEST_MSG DC CL80'THIS IS ANOTHER TEST MESSAGE' Q_NAME DC CL48'TEST.QUEUE.NAME' * * WORKING STORAGE DSECT * WORKSTG DSECT * COMPCODE DS F REASON DS F BUFFLEN DS F OPTIONS DS F HCONN DS F HOBJ DS F * BUFFER DS CL80 BUFFER_LEN EQU *-BUFFER * WOD CMQODA DSECT=NO,LIST=YES WORKING VERSION OF MQOD WMD CMQMDA DSECT=NO,LIST=NO WPMO CMQPMOA DSECT=NO,LIST=NO * CALLLST CALL,(0,0,0,0,0,0,0,0,0,0,0),VL,MF=L * ⋮ ENDParent topic: System/390 assembler-language examples