|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Transactional settings in MQ (e.g., timeout values) - where? |
« View previous topic :: View next topic » |
Author |
Message
|
roliv |
Posted: Tue Jul 13, 2004 10:52 am Post subject: Transactional settings in MQ (e.g., timeout values) - where? |
|
|
Novice
Joined: 26 Aug 2001 Posts: 11
|
Hi,
Where in WebSphere MQ can we specify transactional settings such as a
timeout value for MQ transactions? For instance, let's say that an
application gets a message from a queue and does some processing after
getting the message. The application is supposed to commit the read only
after it has finished processing the message. If a long time occurs between
the time the message was received and the time the application finished
processing the message, we think a time-out error could occur. We need to
know where this value (and any other transaction settings) is specified in
MQ. |
|
Back to top |
|
 |
kirani |
Posted: Tue Jul 13, 2004 1:14 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
All the settings you mentioned above should be implemented in the application program. Is this a Request-Reply scenario?
Using Syncpoint option you can coordinate your transactions (Get/Put actions). Also, you can specify WaitInterval in GMO (Get message option) for the timeout in client application. _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
kevinf2349 |
Posted: Tue Jul 13, 2004 1:17 pm Post subject: |
|
|
 Grand Master
Joined: 28 Feb 2003 Posts: 1311 Location: USA
|
It is up to the application itself to decide what timeouts (if any) you code into the application. The only MQ API call that will timeout on is a MQGET and even then you can instruct it not to. You can put an expiry interval on a message when you put it to a queue, but again it is up to the application to do so, and it is up to the application to decide what actions to take should this happen.
As a delivery mechanism MQSeries is designed to be asynchronous. Messages will stay on queues (under the right circumstances) indefinately. |
|
Back to top |
|
 |
roliv |
Posted: Tue Jul 13, 2004 8:09 pm Post subject: |
|
|
Novice
Joined: 26 Aug 2001 Posts: 11
|
Thanks for the replies. The complete scenario is the following. The application gets a message from a queue, the message is processed, and
then another message is generated as a result of processing the incoming message. This outgoing message is placed on a different queue.
Both, the MQ Get and the MQ Put are part of the same transaction (we are using the JMS API, so this means the same session object is used to get the incoming message and send the outgoing message). The problem is that if processing the incoming message takes a long time (aprox. 10 mins), then we get the following MQ exception when the application tries to place the outgoing message on the outgoing queue:
JMS error: sending MQ message failed.
javax.jms.JMSException: MQJMS2007: failed to send message to MQ queue
at com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:540)
at com.ibm.mq.jms.MQQueueSender.sendInternal(MQQueueSender.java:824)
at com.ibm.mq.jms.MQQueueSender.send(MQQueueSender.java:239)
at com.ibm.mq.jms.MQQueueSender.send(MQQueueSender.java:272)
The pattern we have found is that we only get this error if a long time has passed since the message was read from the incoming queue and the
time when the MQ Put occurs. That is why we thought this problem could be related to a transaction time out.
We haven't been able to reproduce this problem in our test environment; it only happens in production. In the test environment, we even used messages that would require about 30 mins to be processed and everything worked fine. If any one has any ideas/thoughts about what could be the cause for this problem, please share them with us. Thanks. |
|
Back to top |
|
 |
gunter |
Posted: Tue Jul 13, 2004 11:28 pm Post subject: |
|
|
Partisan
Joined: 21 Jan 2004 Posts: 307 Location: Germany, Frankfurt
|
Try to get the linked exception, it will tell you the reason.
I don't believe, that it has to do with time, maybe the message ist to big or something else. _________________ Gunter Jeschawitz
IBM Certified System Administrator - Websphere MQ, 5.3 |
|
Back to top |
|
 |
OmPat |
Posted: Wed Jul 28, 2004 11:46 am Post subject: |
|
|
Apprentice
Joined: 20 Jul 2004 Posts: 33 Location: Charlotte
|
Best bet is to get the linked exception or error code using getlinkedexception method or getjmserrorcode method which are part of jmsexception object. so if you could provide us with errors along with the reason code we could help you out.
Thanks,
~Om _________________ IBM Certified WMQ V5.3 System Administrator
IBM Certified WMQ V5.3 Solutions Designer
Brainbench Certified MQ Expert
IBM Certified WMQI V2.1 Solutions Expert
IBM Certified WMQI V2.1 Specialist |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|