Author |
Message
|
arekatla@gmail.com |
Posted: Mon Jan 16, 2006 11:17 pm Post subject: DEad letter Queue is full? |
|
|
Newbie
Joined: 23 Aug 2005 Posts: 7
|
HI
I'm using websphere MQ in our proj. we have dead letter queues too.
what could be done when a DLQ is full?
I heard there are MQ triggers which will read messages from DLQ when it got full, if so how to implement this mechanism?
Can any one suggest best solution?
Thanks
Ramesh |
|
Back to top |
|
 |
sebastianhirt |
Posted: Tue Jan 17, 2006 12:20 am Post subject: |
|
|
Yatiri
Joined: 07 Jun 2004 Posts: 620 Location: Germany
|
Look for runmqdlq or Dead Letter Handler in the System Administration Guide. If you have done so and still have questions, feel free to ask them here.
cheers
Sebastian |
|
Back to top |
|
 |
arekatla@gmail.com |
Posted: Tue Jan 17, 2006 1:32 am Post subject: |
|
|
Newbie
Joined: 23 Aug 2005 Posts: 7
|
what is best mechanism to handle the situation like when DLQ is full?
at present when DLQ is full, our application going to loop. |
|
Back to top |
|
 |
wschutz |
Posted: Tue Jan 17, 2006 4:01 am Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
arekatla@gmail.com wrote: |
what is best mechanism to handle the situation like when DLQ is full? |
See the previous post by Sebastian...
arekatla@gmail.com wrote: |
at present when DLQ is full, our application going to loop. |
Why? Is your program writing directly to the DLQ (bad). In ay case, there is no reason why the program should loop. _________________ -wayne |
|
Back to top |
|
 |
mvic |
Posted: Tue Jan 17, 2006 4:36 am Post subject: |
|
|
 Jedi
Joined: 09 Mar 2004 Posts: 2080
|
wschutz wrote: |
arekatla@gmail.com wrote: |
at present when DLQ is full, our application going to loop. |
Why? Is your program writing directly to the DLQ (bad). In ay case, there is no reason why the program should loop. |
The MQ manuals imply that an app writing to the DLQ is OK.
http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqzal.doc/csq033f.htm
But this implies that there is a good DLQ handler running, fast enough to handle any arrivals there.
It's obviously the case that the app logic should be correct. If the DLQ has got full (a very bad condition!!) then the app probably has to stop... But it really depends on what the application as a whole is doing with those messages. Do they really need to be put on the DLQ? Can an application-specific "failed" queue be used instead? |
|
Back to top |
|
 |
arekatla@gmail.com |
Posted: Tue Jan 17, 2006 5:00 am Post subject: |
|
|
Newbie
Joined: 23 Aug 2005 Posts: 7
|
when there is problem in processing , I'm posting the messges to DLQ. en messge volume is high and if any problem in application then DLQ is getting full. Then application going to loop. admn also Unable to take acton with in time. so I want any mechanism to clear or read messges from dlq when it is about to full. |
|
Back to top |
|
 |
raja_no_1 |
Posted: Tue Jan 17, 2006 5:12 am Post subject: |
|
|
 Apprentice
Joined: 05 Sep 2005 Posts: 34
|
One of the ways to handle messages on the DEAD letter queue is to run the Dead Letter Handler. Normally the handler tries to submit messages in the DLQ to intended the Queue based on the settings of a config file. |
|
Back to top |
|
 |
xxx |
Posted: Tue Jan 17, 2006 6:19 am Post subject: |
|
|
Centurion
Joined: 13 Oct 2003 Posts: 137
|
Application fails to put a message to queue , then your MQ admin should figure out the reason for failure .
I guess you are putting messages from a remote server and if the Queue is full the messages are ending in Dead letter queue,
There can be other situations also,
Any ways if the messages are ending in DLQ , it is the MQ admin responsibilty to check why the messages are landing in that Queue and work in timely fashion to resolve the issue
As already stated , you can run the runmqdlq handler with rules to direct the messages back or to some other backup queue |
|
Back to top |
|
 |
xxx |
Posted: Tue Jan 17, 2006 6:24 am Post subject: |
|
|
Centurion
Joined: 13 Oct 2003 Posts: 137
|
messge volume is high and if any problem in application then DLQ is getting full.
Increase the depth of the Queue to handle volume, Use Multi threated application or start two process to pull the the messages,
You can also put alerts on Queue so that if certain depth is hit , ADMIN or the application owner is paged to restart the job or look into the issue
MQ is just a bucket ! It is the responsiblity of Application Programmer to handle the volume solution , |
|
Back to top |
|
 |
wschutz |
Posted: Tue Jan 17, 2006 6:46 am Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
The case we're seeing here is a reason why I think its a bad idea for applications to write to the system dead-letter-queue. (of course its technically possible).
For me, it makes sense to have an application specific dead-letter-queue and not contanimate the system one with application messages. This provides better isolation, allowing application areas to control the re-processing of messages seperate from the system defined rules, prevent "filling-up" the system DLQ and so on. _________________ -wayne |
|
Back to top |
|
 |
mvic |
Posted: Tue Jan 17, 2006 7:25 am Post subject: |
|
|
 Jedi
Joined: 09 Mar 2004 Posts: 2080
|
Quote: |
The case we're seeing here is a reason why I think its a bad idea for applications to write to the system dead-letter-queue. |
I agree, in general.
Developers should ideally choose to use a private DLQ, not the qmgr's DLQ. But for an admin taking on an existing system that uses this scheme, the imperative is to have a good (and fast) DLQ handler program.
I don't know at what stage in the development lifecycle Ramesh is, currently. |
|
Back to top |
|
 |
Tibor |
Posted: Tue Jan 17, 2006 7:59 am Post subject: |
|
|
 Grand Master
Joined: 20 May 2001 Posts: 1033 Location: Hungary
|
mvic wrote: |
...I agree, in general.
Developers should ideally choose to use a private DLQ, not the qmgr's DLQ. |
But anyway, I recommend you to add a standard Dead-Letter-Header (DLH) for those bad/poisoned/etc messages!
Tibor |
|
Back to top |
|
 |
arekatla@gmail.com |
Posted: Tue Jan 17, 2006 10:28 pm Post subject: |
|
|
Newbie
Joined: 23 Aug 2005 Posts: 7
|
My application depends on another server too, if that server is down then my application tries for 3 times to process the messge , even if the sever is not available then I'm messages are landing into DLQ. in this situation the messages volunme is high then DLQ is getting full.
how to generate alerts on MQ? Can you post links? |
|
Back to top |
|
 |
jefflowrey |
Posted: Wed Jan 18, 2006 4:22 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Don't put them in the DLQ if the other server is down.
Put them in a backout queue.
There's a whole manual devoted to mechanisms for Monitoring WebSphere MQ. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
bower5932 |
Posted: Wed Jan 18, 2006 9:01 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Aug 2001 Posts: 3023 Location: Dallas, TX, USA
|
arekatla@gmail.com wrote: |
My application depends on another server too, if that server is down then my application tries for 3 times to process the messge , even if the sever is not available then I'm messages are landing into DLQ. in this situation the messages volunme is high then DLQ is getting full. |
If the other server isn't up, why have your application keep trying and then moving messages to another queue? I would think you would want it to end and send an alert off to somebody to check on the other application? |
|
Back to top |
|
 |
|