Author |
Message
|
RAJESHRAMAKRISHNAN |
Posted: Mon Feb 21, 2005 3:35 am Post subject: Expiry of messages |
|
|
Voyager
Joined: 01 May 2004 Posts: 96
|
We have an application (A) that sends messages to another application (B). It has been decided to Log all out bound messages in a LOG queue with an expiry set(The expiry time not yet decided) even for production. This is to re-submit messages in case there is a failure, from the middle ware itself.
Now my question:
If the MQPut node keeps dumping messages in to the LOG queue, at one point of time the max queue depth will be reached and this will result in an exception. Can this be avoided some how? Should we have a process that opens the queue in browse mode to clear the queue of expired messages(Not a good method)? |
|
Back to top |
|
 |
Michael Dag |
Posted: Mon Feb 21, 2005 3:50 am Post subject: |
|
|
 Jedi Knight
Joined: 13 Jun 2002 Posts: 2607 Location: The Netherlands (Amsterdam)
|
|
Back to top |
|
 |
RAJESHRAMAKRISHNAN |
Posted: Mon Feb 21, 2005 4:15 am Post subject: |
|
|
Voyager
Joined: 01 May 2004 Posts: 96
|
Yes, Browse clears the expired messages. But is there any other better method to acheive this? |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Feb 21, 2005 4:48 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
It's not clear what you mean by "MQPut node"...
But it would be a lot better to put the messages in a database, and have a process of rebuilding them and resubmitting them. Then you don't have to worry about queue depth issues... and you don't have to worry about how to get the 1897th message from a queue with 2000 messages... and.. and ... _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
RAJESHRAMAKRISHNAN |
Posted: Mon Feb 21, 2005 5:02 am Post subject: |
|
|
Voyager
Joined: 01 May 2004 Posts: 96
|
Sorry. Should have mentioned it as MQOutput node. Thanks for the suggestion, Jeff. |
|
Back to top |
|
 |
vmcgloin |
Posted: Mon Feb 21, 2005 5:15 am Post subject: |
|
|
Knight
Joined: 04 Apr 2002 Posts: 560 Location: Scotland
|
You said:
Quote: |
Should we have a process that opens the queue in browse mode to clear the queue of expired messages(Not a good method)? |
Why is that not good for you? We use that method to force reporting of expired messages sitting on normal queues. For logging Jeff 's method is better. However, for replay in case of failure would it not be better to use syncpoint and backout queues, rather than the overhead of duplicating (and altering) all messages? |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Feb 21, 2005 5:53 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
A duplicate/store function also provides a level of non-repudiation that can be invaluable. Yes, it does "alter" the message, in that it flattens it into a datastore... but that's a fixed transform and can be debugged and ruled out when the developer tries to say "But MQ must have put that minus sign in there, when obviously this was a deposit transaction not a withdrawal!". _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
RAJESHRAMAKRISHNAN |
Posted: Mon Feb 21, 2005 8:52 pm Post subject: |
|
|
Voyager
Joined: 01 May 2004 Posts: 96
|
Storing the messages that caused errors alone is not sufficient for us. The idea is to replay the messages even in case an error occurs in the Target Application (Application B) and for some reason Application B is not able to notify Application A about this error. |
|
Back to top |
|
 |
|