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

  ·
  ·
  ·
END