PL/I example: 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.
For the names and locations of the sample applications, see Using the sample procedural programs for z/OS®.
%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 BUFFLEN BINARY FIXED (31);
DCL DATALEN BINARY FIXED (31);
DCL BUFFER CHAR(80);
⋮
/*********************************************************/
/* LOCAL COPY OF MESSAGE DESCRIPTOR AND */
/* GET MESSAGE OPTIONS */
/*********************************************************/
DCL 1 LMQMD LIKE MQMD;
DCL 1 LMQGMO LIKE MQGMO;
⋮
/*********************************************************/
/* SET UP MESSAGE DESCRIPTOR AS REQUIRED. */
/* MSGID AND CORRELID IN MQMD SET TO NULLS SO FIRST */
/* AVAILABLE MESSAGE WILL BE RETRIEVED. */
/*********************************************************/
LMQMD.MSGID = MQMI_NONE;
LMQMD.CORRELID = MQCI_NONE;
/*********************************************************/
/* SET UP GET MESSAGE OPTIONS AS REQUIRED. */
/*********************************************************/
LMQGMO.OPTIONS = MQGMO_NO_SYNCPOINT;
/*********************************************************/
/* SET UP LENGTH OF MESSAGE BUFFER. */
/*********************************************************/
BUFFLEN = LENGTH(BUFFER);
/*********************************************************/
/* */
/* HCONN WAS SET BY PREVIOUS MQCONN REQUEST. */
/* HOBJ WAS SET BY PREVIOUS MQOPEN REQUEST. */
/* */
/*********************************************************/
CALL MQGET (HCONN,
HOBJ,
LMQMD,
LMQGMO,
BUFFERLEN,
BUFFER,
DATALEN,
COMPCODE,
REASON);
/*********************************************************/
/* TEST THE COMPLETION CODE OF THE GET CALL. */
/* IF THE CALL HAS FAILED ISSUE AN ERROR MESSAGE */
/* SHOWING THE COMPLETION CODE AND THE REASON CODE. */
/*********************************************************/
IF COMPCODE ¬= MQCC_OK
THEN DO;
⋮
CALL ERROR_ROUTINE;
END;