Getting a message
This example demonstrates how to use the MQGET call to remove a message from a queue.
This extract is not taken from the sample applications supplied with IBM MQ .⋮ * * CONNECT TO QUEUE MANAGER * CONN DS 0H ⋮ * * OPEN A QUEUE FOR GET * OPEN DS 0H ⋮ * * R4,R5,R6,R7 = WORK REGISTER. * GET DS 0H 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 WGMO_AREA,MQGMO_AREA INITIALIZE WORKING MQGMO * LA R5,BUFFER_LEN RETRIEVE THE BUFFER LENGTH ST R5,BUFFLEN AND SAVE IT FOR MQM USE * * * ISSUE MQI GET REQUEST USING REENTRANT FORM OF CALL MACRO * * HCONN WAS SET BY PREVIOUS MQCONN REQUEST * HOBJ WAS SET BY PREVIOUS MQOPEN REQUEST * CALL MQGET, X (HCONN, X HOBJ, X WMD, X WGMO, X BUFFLEN, X BUFFER, X DATALEN, X COMPCODE, X REASON), X VL,MF=(E,CALLLST) * LA R5,MQCC_OK C R5,COMPCODE BNE BADCALL * ⋮ BADCALL DS 0H ⋮
* * CONSTANTS * CMQMDA DSECT=NO,LIST=YES CMQGMOA DSECT=NO,LIST=YES CMQA * * WORKING STORAGE DSECT * WORKSTG DSECT * COMPCODE DS F REASON DS F BUFFLEN DS F DATALEN DS F OPTIONS DS F HCONN DS F HOBJ DS F * BUFFER DS CL80 BUFFER_LEN EQU *-BUFFER * WMD CMQMDA DSECT=NO,LIST=NO WGMO CMQGMOA 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