ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » IBM MQ Java / JMS » How to deal if queue reaches max depth.

Post new topic  Reply to topic Goto page 1, 2  Next
 How to deal if queue reaches max depth. « View previous topic :: View next topic » 
Author Message
Mq_learner
PostPosted: Mon Aug 22, 2005 6:55 pm    Post subject: How to deal if queue reaches max depth. Reply with quote

Newbie

Joined: 22 Aug 2005
Posts: 3
Location: Chicago

Hi,

Can any one tell me a solution what if a queue reaches its max depth. I can see that messages are going to dead letter queue. Is there a mechanism to retrive messages from dead letter queue or is there an alternate approach to prevent messages from going to dead letter queue and manage max depth situation with some java program. Of course, I have a monitoring system in place that will alert when max depth is reaching. Still I want some way to deal the max depth situation.

Thanks,
Back to top
View user's profile Send private message Yahoo Messenger
hopsala
PostPosted: Mon Aug 22, 2005 7:17 pm    Post subject: Reply with quote

Guardian

Joined: 24 Sep 2004
Posts: 960

By design, messages which have no where to go (if, for example, target queue is filled) are supposed to go to the dead letter queue. To handle those messages, you run a dead letter queue handler (command runmqdlq) which according to a rule table (that you can customize), retrieves messages from the deadq and retries sending them to targetq or does whatever else you want it to do. A full description can be found in System Administration Guide or around this site - there are thousands of posts on this topic...

If for some reason you do not want msgs in your deadq either delete it or put-inhibit it - it should do the trick. Keep in mind, though, that if a queue fills and there is no dead letter queue, all channels trying to write to the full queue will go into RETRY, meaning messages targeted for other queues will not be sent until that one problematic queue is emptied.

Anyway, you can find more info by either reading the manuals or clicking the "search" button here and reading a little; make it a habit clicking this button before posting.
Back to top
View user's profile Send private message
PeterPotkay
PostPosted: Mon Aug 22, 2005 7:24 pm    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

hopsala wrote:
Keep in mind, though, that if a queue fills and there is no dead letter queue, all channels trying to write to the full queue will go into RETRY, meaning messages targeted for other queues will not be sent until that one problematic queue is emptied.

Actually the channel will go to STOPPED, not RETRYING. At that point you will need to make room in the destination queue, and/or in the DLQ, and then manually restart the channel.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
hopsala
PostPosted: Mon Aug 22, 2005 11:42 pm    Post subject: Reply with quote

Guardian

Joined: 24 Sep 2004
Posts: 960

Um, that's not true.

Just made the experimet to make sure - channel is in RETRY...

(The whole point is that it goes to retry, and when the problem is resolved is goes up automatically; what's the sense in stopping?)
Back to top
View user's profile Send private message
KeeferG
PostPosted: Tue Aug 23, 2005 1:45 am    Post subject: Reply with quote

Master

Joined: 15 Oct 2004
Posts: 215
Location: Basingstoke, UK

Hi guys,

Don't foprget the different behaviour in clustering. It's caused all sort of headaches for us.

Queue fills. receiving end goes through its MRRTY loops, default 10 attempts, 1 second apart, before placed on DLQ, repeated for batch of 50.

Sending end stays running for ever and messages build up on transmit queue.

Net result is sending end thinks everything is fine and receiving end always in a paused state. Final killer is new amqrmppa process spawning on the receiving end finally killing the box.
_________________
Keith Guttridge
-----------------
Using MQ since 1995
Back to top
View user's profile Send private message Visit poster's website
PeterPotkay
PostPosted: Tue Aug 23, 2005 7:14 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

hopsala,
You are correct! I just tried it myself, and the channel does go RETRYING, whether the DLQ is full or not defined, and then goes RUNNING as soon as the problem is fixed. That's the way it should work.

The reason I said it would go STOPPED was the following quote from page 13 of the Intercommunications manual, and what I was taught early on in my MQ classes:
Quote:

We recommend that you define a dead-letter queue for each queue manager. If you
do not, and the MCA is unable to put a message, it is left on the transmission
queue and the channel is stopped.

The manual is wrong?
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
EddieA
PostPosted: Tue Aug 23, 2005 7:44 am    Post subject: Reply with quote

Jedi

Joined: 28 Jun 2001
Posts: 2453
Location: Los Angeles

Quote:
The manual is wrong

Maybe. Or maybe not explicit enough.

I haven't time to test, but perhaps the channel only goes into RETRY for a Queue Full, which "should" be transitory. Maybe a Queue Not Found, or other errors, might cause the Channel to shut down.

Cheers,
_________________
Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0
Back to top
View user's profile Send private message
Mq_learner
PostPosted: Tue Aug 23, 2005 7:50 am    Post subject: Reply with quote

Newbie

Joined: 22 Aug 2005
Posts: 3
Location: Chicago

As a new member, I am really surprised to see immediate responce. Thanks, and please continue. I am trying to implement here.
Back to top
View user's profile Send private message Yahoo Messenger
PeterPotkay
PostPosted: Tue Aug 23, 2005 7:54 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

EddieA wrote:
Quote:
The manual is wrong

Maybe. Or maybe not explicit enough.

I haven't time to test, but perhaps the channel only goes into RETRY for a Queue Full, which "should" be transitory. Maybe a Queue Not Found, or other errors, might cause the Channel to shut down.

Cheers,


Nope, thought of that. Sent to a bogus Q name, and same results.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue Aug 23, 2005 8:28 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

It is perfectly valid to file a PMR on documentation, and to request clarification of documentation...
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
hopsala
PostPosted: Tue Aug 23, 2005 9:32 am    Post subject: Reply with quote

Guardian

Joined: 24 Sep 2004
Posts: 960

Happily I haven't trusted the manuals (by instinct) for years now I always try things out before relying on them; But I am really surprised to see such a blunt mistake in the manuals, and on all books in the Intercommunication manual - i.e the bible - Can a simple MQ admin believe in nothing nowadays?

Btw, through the years I had every possible problem - queue does not exist, 2035, 2033, message too big for queue, no deadq, deadq full, put-inhibit and more - the channel always goes to RETRY.

In fact, the only case I found channels going to STOPPED is after LONGRTY is done or some serious memory-allocation error and such.

KeeferG wrote:
Queue fills. receiving end goes through its MRRTY loops, default 10 attempts, 1 second apart, before placed on DLQ, repeated for batch of 50.

Sending end stays running for ever and messages build up on transmit queue.

Yup, that's why I always work with MRRTY of 1 or 2. I claim that if there's a problem putting to queue, it will probably still be there in the next few minutes...


Last edited by hopsala on Tue Aug 23, 2005 9:37 am; edited 1 time in total
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue Aug 23, 2005 9:36 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

hopsala wrote:
In fact, the only case I found channels going to STOPPED is after LONGRTY is done or some serious memory-allocation error and such.


This does actually mean that the manual is correct.

It does not say when the channel will be stopped. Nor does it say what criteria is used to determine that "the MCA is unable to put a message".

Like a lot of things in the manuals, though, this is subtle.

EDIT:

Heck, I'd even argue that this is the *right* behavior. Most conditions that will cause the MCA to get a bad RC from a PUT are transitory conditions, and will likely be resolved before the LONGRTY is over. Once the problem is resolved on the receiving side, I want the channel to resume normal operations without intervention, and messages to flow. I don't want to have to start the channel as well, or resolve messages on the xmit queue in some manner.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
wschutz
PostPosted: Tue Aug 23, 2005 9:41 am    Post subject: Reply with quote

Jedi Knight

Joined: 02 Jun 2005
Posts: 3316
Location: IBM (retired)

Quote:
It does not say when the channel will be stopped
Umm... using the default values, that would be a little more than 38,051 years....
_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
jefflowrey
PostPosted: Tue Aug 23, 2005 9:43 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

wschutz wrote:
Quote:
It does not say when the channel will be stopped
Umm... using the default values, that would be a little more than 38,051 years....


I thought it was IBM's general position that the default values were not really designed for production use?
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
wschutz
PostPosted: Tue Aug 23, 2005 9:49 am    Post subject: Reply with quote

Jedi Knight

Joined: 02 Jun 2005
Posts: 3316
Location: IBM (retired)

Actually Peter, if you're looking at the info center version of the Intercomm guide, you can just click the "Feedback" link at the bottom of the offending page and make a comment about it there.....

Jeff... I wonder how many people have actually changed long retry?
_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » IBM MQ Java / JMS » How to deal if queue reaches max depth.
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.