Mqget 2033 Error
Contents |
2033 7 replies Latest Post - 2006-08-21T01:41:52Z by SystemAdmin Display:ConversationsBy Date 1-8 of 8 Previous Next SystemAdmin 110000D4XK 8523 Posts Pinned topic The reason for reason code 2033 2006-08-11T17:34:27Z | Tags: Answered question This question has been answered. Unanswered question This
Mq Completion Code 2 Reason 2033
question has not been answered yet. Hi, I am using MQ v5.3 on Windows 2000 2033 mqrc_no_msg_available advance server. In my java code, i have a loop that call getCurrentDepth() and if the result is > 0, it
Mqget Failed With Reason Code 2033
will issue a MQGET. I have set the waitInterval to some timing and has also committed the queue manager. However, i still manage to encounter the exception. I am wondering, since i am able to get mqrc_no_msg_available c# into the loop, as depth is > 0, how come it couldn't find a message when MQGET is trying to get a message from the queue? Any information is very much appreciated. Thanks. Log in to reply. Updated on 2006-08-21T01:41:52Z at 2006-08-21T01:41:52Z by SystemAdmin SystemAdmin 110000D4XK 8523 Posts Re: The reason for reason code 2033 2006-08-14T03:35:54Z This is the accepted answer. This is the accepted answer. a Ken wrote: > mqrc codes Hi, > > I am using MQ v5.3 on Windows 2000 advance server. In my java code, i > have a loop that call getCurrentDepth() and if the result is > 0, it > will issue a MQGET. I have set the waitInterval to some timing and > has also committed the queue manager. > > However, i still manage to encounter the exception. I am wondering, > since i am able to get into the loop, as depth is > 0, how come it > couldn't find a message when MQGET is trying to get a message from > the queue? > > Any information is very much appreciated. Thanks. The current depth includes uncommitted messages and may include expired messages. Also make sure you are not specifying a message id or correl id on the get. Its generally a bad idea to poll a queue. Its much more efficient to use MQGET with a very long wait interval (in a separate thread if needed). HTH, Glenn. Log in to reply. SystemAdmin 110000D4XK 8523 Posts Re: The reason for reason code 2033 2006-08-14T08:41:59Z This is the accepted answer. This is the accepted answer. SystemAdmin 110000D4XK 2006-08-14T03:35:54Z a Ken wrote: > Hi, > > I am using MQ v5.3 on Windows
2033 0x000007f1 MQRC_NO_MSG_AVAILABLECauseThe following are the most likely causes for MQRC 2033: * There are no messages on the queue. * The unit of work (UOW) for the MQPUT http://middlewarenews.blogspot.com/2011/02/2033-mqrc-no-msg-available-middleware.html was not committed. * The messages have expired.Resolving the problem * Consider this reason code as a normal condition and handle this condition in your getting application. Use the MQGET MQGMO_WAIT option and retry the MQGET. o The amqsget sample programs demonstrate the use of MQGET MQGMO_WAIT. * Verify that the putting application is committing the UOW. The current depth of the queue increments at code 2 MQPUT. However, messages are not available to the getting application until they are committed. * Messages that have expired will be counted in the current depth of the queue and they are discarded at the point of MQGET. Expired messages are never returned to the getting application. You may want to increase your message expiry time or use unlimited expiry for your messages.Note: There are mqget 2033 error more reasons for MQRC 2033. This documents the most common causes. MQGET fails with MQRC 2033Problem(Abstract)Your WebSphere MQ for z/OS batch job puts messages to a queue. Your trigger-started program attempts to get the messages from the queue and fails with reason code2033 0x000007f1 MQRC_NO_MSG_AVAILABLE CauseThe batch job has not committed the unit of work. Resolving the problemYour batch job will determine when the unit of work is complete. Use the MQCMIT call to make messages available to getting applications, or use MQPMO_NO_SYNCPOINT (the default option on z/OS is MQPMO_SYNCPOINT).Do not always consider MQRC_NO_MSG_AVAILABLE to be a failure. Your getting application should be designed to handle MQRC 2033, because it is a very common reason code. A GET WAIT CAN RESULT IN MQRC=2033, ALTHOUGH MESSAGES ARE ON QUEUE.Error description * Application has few GET-Wait instances on a queue and messages will be GETed by GroupID. Depending on number of messages and the number of parallel instances, application will get 2033 RC, although messages still existing on queue. The second/reGET is always successful. If only one instance of the application is used, the problem does not exist. The following describes the scenario: Application 1