|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
JMS Setting a Redelivery Delay for Messages |
« View previous topic :: View next topic » |
Author |
Message
|
PeterPotkay |
Posted: Tue Oct 18, 2016 4:36 pm Post subject: JMS Setting a Redelivery Delay for Messages |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
The JMS app uses an MDB, the MDB calls a back end Web Service. If that back end Web Service is N/A for a few minutes, they would like to roll back and keep retrying the message every so often until the Web Service is back up, but not as fast as possible because the back out threshold would quickly be reached and the message would be offloaded to the backout queue, necessitating manual work. We've kicked around lots of ideas, but the ask is, can't you just slow down all this backout processing stuff? Not from an MQ perspective I say, this could and should be coded in the app, or a helper process that wakes up every so often moves the messages from the backout q back into the input q, but we found this:
https://docs.oracle.com/cd/E13222_01/wls/docs81/jms/implement.html#1255066
In the above link, it says:
Quote: |
When a message is rolled back or recovered, the redelivery delay is the amount of time a message is put aside before an attempt is made to redeliver the message. |
Put aside where?
Let's assume MQ Backout Threshold is 10
MQGET #1 of Message A
MDB starts processing the message and finds a back end resource is N/A, so it rolls back
MQGET #2 for Message A occurs immediately, by same MDB, or maybe another watching the same queue
MQMD Backout Count (1) < MQ Backout Threshold (10)
Now what happens if the JMS app is using JMS "Redelivery Delay Override"? _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
PeterPotkay |
Posted: Wed Oct 19, 2016 6:07 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
A team mate of mine let me know this is part of JMS 2.0 and MQ 8.0.
http://www.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.dev.doc/q119200_.htm
Quote: |
In IBM® MQ Version 8.0, delivery delay is implemented by using a single internal staging queue. Messages that have a nonzero delivery delay are placed on this queue with a header that indicates the delivery delay and information about the target queue. A component of the queue manager that is called the delivery delay processor monitors the messages on the staging queue. When a message's delivery delay completes, the message is taken off the staging queue and placed on the target queue. |
_________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
tczielke |
Posted: Wed Oct 19, 2016 12:22 pm Post subject: |
|
|
Guardian
Joined: 08 Jul 2010 Posts: 941 Location: Illinois, USA
|
The Delivery Delay that is in JMS 2.0/MQ 8.0 is different than the ability to set some type of redelivery delay for a backed out message. The redelivery delay that is described in that first link looks like something that is available in the WebLogic JMS provider, but not with the MQ JMS provider. At least as far as I know. _________________ Working with MQ since 2010. |
|
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
|
|
|
|