Author |
Message
|
MQGuy2000 |
Posted: Thu Aug 21, 2003 7:17 am Post subject: DLQ |
|
|
Centurion
Joined: 20 Jul 2003 Posts: 131
|
Hi All,
Can anyone pl. answer my question.
we have 2 QMs (QM1 & QM2). When QM1 sends lot of messages to a queue on QM2, and when the local queue on MQ2 is full (for whatever reason), the messages are put on the Dead Letter Queue on the QM2.
My question is, if the DLQ is also full, will the channel go down? what happens.
ANy info is greatly appreciated.
MQGuy |
|
Back to top |
|
 |
EddieA |
Posted: Thu Aug 21, 2003 8:35 am Post subject: |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
It depends on if the messages are persistent.
If they are, then yes, the channel will go down so that the messages stay on the sending XMIT queue.
If the messages are non-persistent, then I believe they go to the big bit-bucket in the sky. And are lost forever.
Cheers, _________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
MQGuy2000 |
Posted: Thu Aug 21, 2003 10:08 am Post subject: |
|
|
Centurion
Joined: 20 Jul 2003 Posts: 131
|
Thanks for your reply. But what is the Sender QM's XMIT is also full. Does it go to Deat Letter Q. WHat is the DLQ is also full.
Reason I am asking is the number of messages are huge and this case happens.
regards |
|
Back to top |
|
 |
EddieA |
Posted: Thu Aug 21, 2003 12:54 pm Post subject: |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
If XMIT queue is full, then the sending application gets a failure return code when they try and PUT the message.
Cheers, _________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
PeterPotkay |
Posted: Thu Aug 21, 2003 5:05 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
If the messages are non persistent AND the channel speed is set to fast, then yes, the messages get tossed and the channel stays up.
All other scenarios, including non persistent messages on a channel whose speed is Normal, will not be lost, and the channel will stop. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
EddieA |
Posted: Thu Aug 21, 2003 9:13 pm Post subject: |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
Damn. I always forget about the Message Speed part with the default being Fast.
Thanks for keeping me honest Peter.
Cheers, _________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
MQGuy2000 |
Posted: Mon Aug 25, 2003 6:20 am Post subject: DLQ + Persistent messages |
|
|
Centurion
Joined: 20 Jul 2003 Posts: 131
|
When the channel is down, the persistent messages are NOT lost. As a matter of fact persistent messages are NEVER Lost. Am I right.
In that case how can we retrieve them after the Channel is up again. In general how can we retrieve the messages when the QM or network goes down.
Thanks a lot for all who replied to my doubts. It is very helpful.
regards
MQGuy |
|
Back to top |
|
 |
PeterPotkay |
Posted: Mon Aug 25, 2003 6:27 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Thats right, the persistent message will never be lost. They will simply stack up in the transmit queue. When the channel starts up again, they will be shipped across. There is nothing you need to do. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
MQGuy2000 |
Posted: Mon Aug 25, 2003 6:41 am Post subject: |
|
|
Centurion
Joined: 20 Jul 2003 Posts: 131
|
peter,
Thanks for the reply. But I need to know what happens if the XMIT queue on the sending side is also FULL.
I believe the sending application gets an error message.
in that case where and how can I retrieve the messages (as they are not in XMIT QUEUE).
Thanks for your advise.
MQGuy |
|
Back to top |
|
 |
mqonnet |
Posted: Mon Aug 25, 2003 6:56 am Post subject: |
|
|
 Grand Master
Joined: 18 Feb 2002 Posts: 1114 Location: Boston, Ma, Usa.
|
You would get into a state of XMITQ being full only in a very few states.
1) Your channel is down.
2) Your MCA is too overloaded and hence is unable to process requests faster than your put app. Which is highly unlikely but not an imposssible state.
Now, if your channel is down, and your xmitq is full, any app that is trying to put to a remote queue using this xmitq would get a 2053. And you can merrily go and get any message in this state from the XMITQ.
Hope this helps.
Cheers
Kumar |
|
Back to top |
|
 |
MQGuy2000 |
Posted: Mon Aug 25, 2003 7:10 am Post subject: |
|
|
Centurion
Joined: 20 Jul 2003 Posts: 131
|
Kumar,
Thanks for your reply. It definitely helps.
But my question is still not answered. Probably I am not asking it clearly. Let me rephrase it.
You quoted --" Now, if your channel is down, and your xmitq is full, any app that is trying to put to a remote queue using this xmitq would get a 2053. And you can merrily go and get any message in this state from the XMITQ. "
My question:
When the XMIT Queue is full (channel is down too)
and the sending application is still trying to put more messages, the sending application gets an error code 2053. Where can I get these persistent messages , as these messages cannot be put on the XMITQ (XMITQ is full).
I hope I am clear in what I ma trrying to understand.
regards
MQGuy |
|
Back to top |
|
 |
mqonnet |
Posted: Mon Aug 25, 2003 7:21 am Post subject: |
|
|
 Grand Master
Joined: 18 Feb 2002 Posts: 1114 Location: Boston, Ma, Usa.
|
Not really clear with your question now either..
//
Where can I get these persistent messages , as these messages cannot be put on the XMITQ (XMITQ is full).
//
But let me explain.
MYREMOTE===>MYXMITQ===>SOME LOCAL QUEUE AT OTHER END.
Now App A====>puts===>MYREMOTE. MYXMITQ is full. App A would get a reason code 2053 and would fail. Any further puts would still get the same error. You CANNOT PUT any message be it Persistent or Non-persistent since the xmitq is full. Now in this case the messages wont land up on the DLq, if that is what you were getting to.
As for getting is concerned. You can do an amqsget or bcg on the XMITQ directly, you would have the xmitq header though. Or you could modify amqsget/bcg to remove that header for you.
Cheers
Kumar |
|
Back to top |
|
 |
MQGuy2000 |
Posted: Mon Aug 25, 2003 7:49 am Post subject: |
|
|
Centurion
Joined: 20 Jul 2003 Posts: 131
|
Kumar,
Thanks for your detailed explanation.
Pl. tell me if I understand right:
You quoted:
"
MYREMOTE===>MYXMITQ===>SOME LOCAL QUEUE AT OTHER END.
Now App A====>puts===>MYREMOTE. MYXMITQ is full. App A would get a reason code 2053 and would fail. Any further puts would still get the same error. You CANNOT PUT any message be it Persistent or Non-persistent since the xmitq is full. Now in this case the messages wont land up on the DLq, if that is what you were getting to.
"
My understanding:
As the MYXMITQ is full, the sending application CANNOT put the message(MSG1) AT ALL, and HENCE there is no question of losing/retrieving message (MSG1), as it is not even put.
Pl. confirm.
Thanks again for your detailed explanation.
regards
MQGuy |
|
Back to top |
|
 |
mqonnet |
Posted: Mon Aug 25, 2003 8:01 am Post subject: |
|
|
 Grand Master
Joined: 18 Feb 2002 Posts: 1114 Location: Boston, Ma, Usa.
|
///
My understanding:
As the MYXMITQ is full, the sending application CANNOT put the message(MSG1) AT ALL, and HENCE there is no question of losing/retrieving message (MSG1), as it is not even put.
//
You Got it...
Cheers
Kumar |
|
Back to top |
|
 |
MQGuy2000 |
Posted: Mon Aug 25, 2003 8:04 am Post subject: |
|
|
Centurion
Joined: 20 Jul 2003 Posts: 131
|
Thanks Kumar.
Your explanation is greatly appreciated.
MQGuy |
|
Back to top |
|
 |
|