Author |
Message
|
ammar |
Posted: Wed Nov 19, 2008 2:37 am Post subject: Message is not recived at dead letter queue |
|
|
Novice
Joined: 10 Nov 2008 Posts: 12
|
HI
i have two qeues i put my message on qeue1
queue1 put it on queue2 but if queue2 is full message disappears
i have also checked my default Dead letter queue is also present
but no message is not placed on DLQ??? |
|
Back to top |
|
 |
Vitor |
Posted: Wed Nov 19, 2008 2:42 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Is queue2 on the same or a different queue manager to queue1? If it is on the same queue manager then the message won't go to the DLQ, the putting application will get a "target queue full" error. If the message is disappearing, it sounds like this is the case & the putting application is not spotting that the put has failed.
Also are your messages persistent or non-persistent?
Check the application & ensure it's verifying that the WMQ calls are returning success. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
ammar |
Posted: Wed Nov 19, 2008 5:43 am Post subject: |
|
|
Novice
Joined: 10 Nov 2008 Posts: 12
|
Vitor wrote: |
Is queue2 on the same or a different queue manager to queue1? If it is on the same queue manager then the message won't go to the DLQ, the putting application will get a "target queue full" error. If the message is disappearing, it sounds like this is the case & the putting application is not spotting that the put has failed.
Also are your messages persistent or non-persistent?
Check the application & ensure it's verifying that the WMQ calls are returning success. |
i m using persistant messages
i have read from mq admin guide that in case of java mq calls does not
return any thing but exception is thrown if any thing goes wrong but in our application no exception is trown |
|
Back to top |
|
 |
Vitor |
Posted: Wed Nov 19, 2008 5:48 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
ammar wrote: |
i have read from mq admin guide that in case of java mq calls does not
return any thing but exception is thrown if any thing goes wrong but in our application no exception is trown |
This is a Java app then? Using JMS or the native calls?
Please also post a bit more detail about your set up - where are queue1 / queue2 hosted, what links them, etc _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Vitor |
Posted: Wed Nov 19, 2008 5:48 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Moved to Java section _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
ammar |
Posted: Wed Nov 19, 2008 6:04 am Post subject: |
|
|
Novice
Joined: 10 Nov 2008 Posts: 12
|
Vitor wrote: |
ammar wrote: |
i have read from mq admin guide that in case of java mq calls does not
return any thing but exception is thrown if any thing goes wrong but in our application no exception is trown |
This is a Java app then? Using JMS or the native calls?
Please also post a bit more detail about your set up - where are queue1 / queue2 hosted, what links them, etc |
i m using jms in our applicaion
there is a server FMCQM other than websephere server on which these queues are hosted n in a queue manager FMCQ.
i dont get what do u mean by what links them?? |
|
Back to top |
|
 |
Vitor |
Posted: Wed Nov 19, 2008 6:10 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
ammar wrote: |
there is a server FMCQM other than websephere server on which these queues are hosted n in a queue manager FMCQ.
i dont get what do u mean by what links them?? |
So if I've got this straight:
You have a queue manager FMCQ which hosts 2 queues, queue1 & queue2. You have a JMS app which reads queue1 and writes to queue2. If queue2 is full no exception is thrown in the java & the message disappears.
Am I right? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
ammar |
Posted: Wed Nov 19, 2008 6:14 am Post subject: |
|
|
Novice
Joined: 10 Nov 2008 Posts: 12
|
Vitor wrote: |
ammar wrote: |
there is a server FMCQM other than websephere server on which these queues are hosted n in a queue manager FMCQ.
i dont get what do u mean by what links them?? |
So if I've got this straight:
You have a queue manager FMCQ which hosts 2 queues, queue1 & queue2. You have a JMS app which reads queue1 and writes to queue2. If queue2 is full no exception is thrown in the java & the message disappears.
Am I right? |
no a little wrong my application writes on queue1 and queue manager writes it from queue1 to queue2 n if queue2 is full then message disappears and no exception is thrown |
|
Back to top |
|
 |
Vitor |
Posted: Wed Nov 19, 2008 6:21 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
ammar wrote: |
no a little wrong my application writes on queue1 and queue manager writes it from queue1 to queue2 n if queue2 is full then message disappears and no exception is thrown |
That's what I meant by "what links them"!
Out of the box, the queue manager doesn't move messages between local queues. So there is another piece of software (possibly an exit) moving the message and this will receive the "queue full" error not your application.
And is presumably ignoring this error.
UNLESS:
Your queue1 is actually a remote queue definition to queue2 hosted on a different queue manager. Is it? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
ammar |
Posted: Wed Nov 19, 2008 6:30 am Post subject: |
|
|
Novice
Joined: 10 Nov 2008 Posts: 12
|
Vitor wrote: |
ammar wrote: |
no a little wrong my application writes on queue1 and queue manager writes it from queue1 to queue2 n if queue2 is full then message disappears and no exception is thrown |
That's what I meant by "what links them"!
Out of the box, the queue manager doesn't move messages between local queues. So there is another piece of software (possibly an exit) moving the message and this will receive the "queue full" error not your application.
And is presumably ignoring this error.
UNLESS:
Your queue1 is actually a remote queue definition to queue2 hosted on a different queue manager. Is it? |
no my both queues are on same manager.
i have got ur point i have to look what application is moving message from queue1 to queue2 n there i will get qeue full error
is i getting right |
|
Back to top |
|
 |
Vitor |
Posted: Wed Nov 19, 2008 6:37 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
ammar wrote: |
i have got ur point i have to look what application is moving message from queue1 to queue2 n there i will get qeue full error
is i getting right |
Exactly so. Your application's put (send? My Java is a bit limited) to queue1 is successful so you get no exception. Something then gets it up from queue1 and puts it to queue2. If the queue is full, that put will fail. Because WMQ hasn't accepted the message for delivery, it's still the responsibility of the application to handle the message.
Hence my question about queue2 being on a different queue manager. In that case, the sending queue manager will accept the message (because it doesn't know queue2 is full) so WMQ must deal with the message when it's discovered it can't be delivered to queue2. Normally (but not always) by putting it onto the DLQ as I think you were expecting to happen here. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
ammar |
Posted: Wed Nov 19, 2008 6:39 am Post subject: |
|
|
Novice
Joined: 10 Nov 2008 Posts: 12
|
Vitor wrote: |
ammar wrote: |
i have got ur point i have to look what application is moving message from queue1 to queue2 n there i will get qeue full error
is i getting right |
Exactly so. Your application's put (send? My Java is a bit limited) to queue1 is successful so you get no exception. Something then gets it up from queue1 and puts it to queue2. If the queue is full, that put will fail. Because WMQ hasn't accepted the message for delivery, it's still the responsibility of the application to handle the message.
Hence my question about queue2 being on a different queue manager. In that case, the sending queue manager will accept the message (because it doesn't know queue2 is full) so WMQ must deal with the message when it's discovered it can't be delivered to queue2. Normally (but not always) by putting it onto the DLQ as I think you were expecting to happen here. |
i have got the problem
thx for ur coperation.
have a nice day |
|
Back to top |
|
 |
|