Author |
Message
|
JohnRodey |
Posted: Wed Apr 13, 2005 10:03 am Post subject: Dead-Letter Queue Simple Setup -No messages goes to DLQ |
|
|
 Centurion
Joined: 13 Apr 2005 Posts: 103
|
I changed my QM setting to add the SYSTEM.DEAD.LETTER.QUEUE as the DEADQ.
Is this the only setup I need to get the DLQ to pickup messages?
I have tried posting a messages to a queue which was full using the sample imqsput. This just returns a 2053 (Queue Full). When I check the SYSTEM.DEAD.LETTER.QUEUE there are no messages.
I read somewhere that it has to be a client application from another machine for it to go to the DLQ. I tried this with the same results.
I have also tried letting a message on the queue expire to see if it was sent to the DLQ and after expiration it disappeared and didn't show up on the DLQ.
Do I have to setup a channel or something?
How can I test to ensure the DLQ is working?
I appreciate any help!!! |
|
Back to top |
|
 |
javagate |
Posted: Wed Apr 13, 2005 10:42 am Post subject: |
|
|
 Disciple
Joined: 15 Nov 2004 Posts: 159
|
An expired message won't go to the DLQ!
Try sending a msg to a queue name that does not exist from a remote qmgr. _________________ WebSphere Application Server 7.0 z/OS &
MQ 6.0. I work with WebSphere in the real world not in some IBM lab. |
|
Back to top |
|
 |
bower5932 |
Posted: Wed Apr 13, 2005 11:25 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Aug 2001 Posts: 3023 Location: Dallas, TX, USA
|
Messages end up on the dead letter queue after WMQ has accepted them and then runs into problems delivering them. When you tried to put to a queue that was already full, WMQ realized and didn't accept the message. As javagate said, the best way to get them on the dead letter queue is to do it remotely. |
|
Back to top |
|
 |
JohnRodey |
Posted: Wed Apr 13, 2005 11:38 am Post subject: |
|
|
 Centurion
Joined: 13 Apr 2005 Posts: 103
|
first of all thanks for your quick replies.
So messages only end up on the DLQ if they are being passed around by transmission queues through channels and aren't excepted by the remote queue?
If I wanted to get a message onto the DLQ based on a error in my code (such as queue full, or unknown mq object) I would have to actually add it to the DLQ in my code? |
|
Back to top |
|
 |
vennela |
Posted: Wed Apr 13, 2005 11:50 am Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
Code: |
If I wanted to get a message onto the DLQ based on a error in my code (such as queue full, or unknown mq object) I would have to actually add it to the DLQ in my code? |
You should actually use some other queue for this kind of purposes. You SHOULD NOT use DLQ for this kind of error handling. |
|
Back to top |
|
 |
JT |
Posted: Wed Apr 13, 2005 12:07 pm Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
It's possible to put a message to the DLQ without a remote queue manager. Here's how:
- In the WebSphere MQ Explorer console, add a local queue manager
- Create an Initiation queue, take all the default settings
- Create a Process definition, add an invalid 'Application Identifier', i.e. C:jfsnhfms.bat
- Create a Local queue, set the trigger 'On', the Trigger Type to 'Every', the Initiation Queue Name and the Process Name
- Snap in the WebSphere MQ Services for the local machine, and create a Trigger Monitor for the initiation queue, don't forget to start the trigger monitor
- Put a message to the Local queue, the message will show up on the DLQ with a Reason Code of 'MQFB_APPL_CANNOT_BE_STARTED'
|
|
Back to top |
|
 |
PeterPotkay |
Posted: Wed Apr 13, 2005 1:09 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
JT wrote: |
[*]Put a message to the Local queue, the message will show up on the DLQ with a Reason Code of 'MQFB_APPL_CANNOT_BE_STARTED'[/list] |
Just to clarify,
The trigger message will go to the DLQ. The application message will still be on the original q. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
|