Getting a message using the wait option
This example demonstrates how to use the MQGET call with the wait option and accepting truncated messages.
This extract is not taken from the sample applications supplied with IBM MQ .%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. */ /* WAIT INTERVAL SET TO ONE MINUTE. */ /*********************************************************/ LMQGMO.OPTIONS = MQGMO_WAIT + MQGMO_ACCEPT_TRUNCATED_MSG + MQGMO_NO_SYNCPOINT; LMQGMO.WAITINTERVAL=60000; /*********************************************************/ /* 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. */ /* TAKE APPROPRIATE ACTION BASED ON COMPLETION CODE AND */ /* REASON CODE. */ /*********************************************************/ SELECT(COMPCODE); WHEN (MQCC_OK) DO; /* GET WAS SUCCESSFUL */ ⋮ END; WHEN (MQCC_WARNING) DO; IF REASON = MQRC_TRUNCATED_MSG_ACCEPTED THEN DO; /* GET WAS SUCCESSFUL */ ⋮ END; ELSE DO; ⋮ CALL ERROR_ROUTINE; END; END; WHEN (MQCC_FAILED) DO; ⋮ CALL ERROR_ROUTINE; END; END; OTHERWISE; END;Parent topic: PL/I examples