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 » WebSphere Message Broker (ACE) Support » Query on dead letter queue

Post new topic  Reply to topic
 Query on dead letter queue « View previous topic :: View next topic » 
Author Message
Prashant_MQ
PostPosted: Sat Feb 25, 2006 12:03 am    Post subject: Query on dead letter queue Reply with quote

Apprentice

Joined: 07 Feb 2006
Posts: 28

Hi,

The question is :

"Is it a valid expection from the remote system(sys1) to ask local system(sys2) to put messages in local queue(on sys2) in case sys2 is not able to put the message on the remote queue due to violation of maxmsglnth attribute and not be directed to dead letter queue"

If it is valid,what am I missing in the code which is putting the messages on dead letter queue on remote system.

Note:We have tested a scenario where the remote queue was full and message was put on local queue due to this and then sent to the remote queue at a point in time.

Thanks
Prashant
Back to top
View user's profile Send private message
wschutz
PostPosted: Sat Feb 25, 2006 4:46 am    Post subject: Reply with quote

Jedi Knight

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

How is sys1 connected to sys2? Normal "sender-receiver" channels or 'clntconn-svrconn" channels?
_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
Prashant_MQ
PostPosted: Sat Feb 25, 2006 5:00 am    Post subject: Reply with quote

Apprentice

Joined: 07 Feb 2006
Posts: 28

Its Sender-Reciever type.

Thanks
Prashant
Back to top
View user's profile Send private message
wschutz
PostPosted: Sat Feb 25, 2006 5:14 am    Post subject: Reply with quote

Jedi Knight

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

Are they persistent messages? If they are non-persistent, is NPMSPEED on the receiver channel set to NORMAL?
_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
Prashant_MQ
PostPosted: Sat Feb 25, 2006 5:32 am    Post subject: Reply with quote

Apprentice

Joined: 07 Feb 2006
Posts: 28

Yes,they are persistent messages.

Thanks
Prashant
Back to top
View user's profile Send private message
wschutz
PostPosted: Sat Feb 25, 2006 5:41 am    Post subject: Reply with quote

Jedi Knight

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

Allow me to re-phase your problem, to ensure that I understand:

You are sending persistent messages from a qmgr on sys1 to a queue on a qmgr on sys2 (call it q2). The message is larger than the max message length of q2 (but less than the max message length of the channel between sys1 and sys2). On sys2 you have a dead letter queue defined to the qmgr, it is not put disabled, its not full and its maxmsgl is larger than that of the message.

When you send the message, you expect it to go to the dlq on sys2, but it simply disappears? Or does something else happen? (like the channel stops, it goes to the dlq on sys1....)
_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
Prashant_MQ
PostPosted: Sat Feb 25, 2006 5:53 am    Post subject: Reply with quote

Apprentice

Joined: 07 Feb 2006
Posts: 28

Wayne,

I regret cos I guess I didnt put the question correctly.

Let me explain with an example.

sys1-local system
q1-local queue
e1-error queue-local to sys1

sys2-remote system
q2-remote queue(maxmsglnth=456bytes)
dlq2-dead letter queue on remote system

-------------
scenario:
1.sys2 sent request message to sys1(PUT into q1)
2.Then sys1 tried to put the reply message on q2 and the message length was 2000.
3.Because the reply message length(2000) was greater then maxmsglngth of q2 or may be(not sure) maxmshlngth of reciever(on sys2),the message was put into dlq2.Is this ok.Or is it that the reply message should have been put into e1.

Hope this helps to understand my query.

Thanks
Prashant
Back to top
View user's profile Send private message
wschutz
PostPosted: Sat Feb 25, 2006 6:06 am    Post subject: Reply with quote

Jedi Knight

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

I'm not sure not "e1" is here...is it the dead lettter queue on sys1?

In any case, the simple rule is:

if you put a message on an xmitq, and that message is too big for the channel, then it will go on the local dead-letter queue (the "sender" end of the channel). If it goes across the channel, and its too big for the target queue, then it goes on the dead letter queue there (the "receivr" end of the channel).
I
_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
Prashant_MQ
PostPosted: Sat Feb 25, 2006 6:21 am    Post subject: Reply with quote

Apprentice

Joined: 07 Feb 2006
Posts: 28

e1 is an error queue which is used to put messages when the remote queue is not available(or when the remote queue is full) and then copy the message back to remote queue when the it is available(or when the remote queue is flushed).
It is not the dead letter queue on sys1.

OK.so then there is nothing wrong in my code9hopefully!).

This means that we do not have control( as we have in case when the remote queue is full) over the message when there is maxmsglnth violation.

But how does the message fall in error queue when the remote queue is full.I am just wondering cos in this case also the message has left sys1.

Thanks
Prashant
Back to top
View user's profile Send private message
wschutz
PostPosted: Sat Feb 25, 2006 6:41 am    Post subject: Reply with quote

Jedi Knight

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

Quote:
This means that we do not have control( as we have in case when the remote queue is full) over the message when there is maxmsglnth violation.
The only way to control that behavior is to either:
(1) not have a DLQ, in which case the channel would stop or
(2) write a "message retry exit" for the receiver channel. This exit would allow you to make the decision as to how to handle the "violation".


Quote:
But how does the message fall in error queue when the remote queue is full.I am just wondering cos in this case also the message has left sys1.
sorry, I still don't understand what this error queue is, since you say its not a DLQ, some other process must be putting the messages into it then.
_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
Prashant_MQ
PostPosted: Sat Feb 25, 2006 6:45 am    Post subject: Reply with quote

Apprentice

Joined: 07 Feb 2006
Posts: 28

No.The messages are put on the error queue by the same application when the aplication could not put the message on the remote queue(when it was full).

Then flush the remote queue and copy the old messages from error queue during the next transaction.

Thanks
Prashant
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Sat Feb 25, 2006 8:47 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

One way this could happen is if the sender application received a bad return code from the PUT. Then it could decide to put the message instead to another queue.

Another way this could happen is if you have some process that is monitoring the transmission queue. If the transmission queue gets full, or messages get stuck there for too long, then the process moves the message. This is a bad thing to be doing.

A third way this could happen is if you have a dead letter queue handler that is reading the DLQ on sys1. When the MCA puts the message on the DLQ, then the DLQ handler moves the message to e1.

It will not otherwise happen on it's own.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Query on dead letter queue
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.