Author |
Message
|
nicks |
Posted: Fri Mar 14, 2008 12:30 am Post subject: Dead letter queue |
|
|
Novice
Joined: 17 Feb 2008 Posts: 11
|
Hi,
I have some problems coming in transmission queue where my messages are sitting in the outbound transmission queue but are not being sent. The outbound channel is showing me green. And shows the status is running. But still the messages are not going through to the remote queue.
If I restart my channel, the message passes to the dead letter queue. When I check the logs its showing me the below message
""During the processing of channel 'Outbound.chan' one or more messages could not be put to the destination queue and attempts were made to put them to a dead-letter queue. The location of the queue is 1, where 1 is the local dead-letter queue and 2 is the remote dead-letter queue.
Action:
Examine the contents of the dead-letter queue. Each message is contained in a structure that describes why the message was put to the queue, and to where it was originally addressed. Also look at previous error messages to see if the attempt to put messages to a dead-letter queue failed. "
I tried to find some ways by which I can read the dead letter queue but was unsuccessful. Is there any commands I can use on the MQSC to see these messages? If not then what is the other way I can go about troubleshooting the above problem.
I would really appreciate any one's help over this.
Thanks a lot |
|
Back to top |
|
 |
nicks |
Posted: Fri Mar 14, 2008 1:12 am Post subject: |
|
|
Novice
Joined: 17 Feb 2008 Posts: 11
|
I again went through my queue setup. I am writting below how it is setup currently. Probably it could give a better picture of what I am trying to do
Transmission queue - trax.msg
Remote Queue Mgr - rmq1
Remote Queue Nm - rm.inbound
Now there is a channel which is linked up to the above transmission queue.
When ever I try to put messages using a VB application code. It places the messages onto the trax.msg queue. But its just sitting there. Do I requrie to define any trigger so that it files this message to go across to the remote queue. As far as I remember transmission queue is sufficient enough to do this kind of a work.
Please let me know. |
|
Back to top |
|
 |
marcin.kasinski |
Posted: Fri Mar 14, 2008 1:27 am Post subject: |
|
|
Sentinel
Joined: 21 Dec 2004 Posts: 850 Location: Poland / Warsaw
|
Please check MQ logs of remote QMGR and definition of remote queue. _________________ Marcin |
|
Back to top |
|
 |
Mr Butcher |
Posted: Fri Mar 14, 2008 1:27 am Post subject: |
|
|
 Padawan
Joined: 23 May 2005 Posts: 1716
|
you could use one of the sampes, e.g. amqsbcg to browse the DLQ, and find out about the reason. the dead letter header is described in the mq programmers reference.
any other supportpac (e.g. mo71 or q program or whatever) that has a browse functionlaity will do too. _________________ Regards, Butcher |
|
Back to top |
|
 |
nicks |
Posted: Fri Mar 14, 2008 2:12 am Post subject: |
|
|
Novice
Joined: 17 Feb 2008 Posts: 11
|
DEFINE QLOCAL(trax.msg) +
DESCR('Test q') +
PUT(ENABLED) +
DEFPRTY(0) +
DEFPSIST(NO) +
GET(ENABLED) +
MAXDEPTH(5000) +
MAXMSGL(4194304) +
SHARE +
DEFSOPT(SHARED) +
MSGDLVSQ(PRIORITY) +
NOHARDENBO +
USAGE(XMITQ) +
TRIGGER +
TRIGTYPE(FIRST) +
TRIGDPTH(1) +
TRIGMPRI(0) +
[b] TRIGDATA(' ') +[/b]
PROCESS(' ') +
INITQ('SYSTEM.CHANNEL.INIT.QUEUE') +
RETINTVL(999999999) +
BOTHRESH(0) +
BOQNAME(' ') +
SCOPE(QMGR) +
QDEPTHHI(80) +
QDEPTHLO(20) +
QDPMAXEV(ENABLED) +
QDPHIEV(DISABLED) +
QDPLOEV(DISABLED) +
QSVCINT(999999999) +
QSVCIEV(NONE)
Just wanted to confirm. The above is the command I hit. Is it necessary out here to define a trigdata to have the outbound channel name? |
|
Back to top |
|
 |
marcin.kasinski |
Posted: Fri Mar 14, 2008 2:52 am Post subject: |
|
|
Sentinel
Joined: 21 Dec 2004 Posts: 850 Location: Poland / Warsaw
|
Please check MQ logs of remote QMGR.
It really can help you. _________________ Marcin |
|
Back to top |
|
 |
zpat |
Posted: Fri Mar 14, 2008 3:02 am Post subject: |
|
|
 Jedi Council
Joined: 19 May 2001 Posts: 5866 Location: UK
|
|
Back to top |
|
 |
fschofer |
Posted: Fri Mar 14, 2008 3:04 am Post subject: |
|
|
 Knight
Joined: 02 Jul 2001 Posts: 524 Location: Mainz, Germany
|
Hi,
nicks wrote: |
Is it necessary out here to define a trigdata to have the outbound channel name? |
The trigdata is usually filled with the name of the sender channel to enable automatic startup of the channel once message appear in the transmission queue.
Greetings
Frank |
|
Back to top |
|
 |
nicks |
Posted: Fri Mar 14, 2008 3:44 am Post subject: |
|
|
Novice
Joined: 17 Feb 2008 Posts: 11
|
Ok, I guess in a distributed queue setup, we would be requring to define a process with the outbound channel. And associate this process with the transmission queue? |
|
Back to top |
|
 |
fschofer |
Posted: Fri Mar 14, 2008 4:01 am Post subject: |
|
|
 Knight
Joined: 02 Jul 2001 Posts: 524 Location: Mainz, Germany
|
|
Back to top |
|
 |
exerk |
Posted: Fri Mar 14, 2008 7:58 am Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
Perhaps I'm missing something here:
Quote: |
Transmission queue - trax.msg |
Quote: |
When ever I try to put messages using a VB application code. It places the messages onto the trax.msg queue |
Are you putting the messages directly to the XMITQ, or am I just misinterpreting what's written? _________________ It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys. |
|
Back to top |
|
 |
nicks |
Posted: Mon Mar 17, 2008 7:13 am Post subject: |
|
|
Novice
Joined: 17 Feb 2008 Posts: 11
|
Yes, I am putting messages directly onto the transmission queue. |
|
Back to top |
|
 |
exerk |
Posted: Mon Mar 17, 2008 7:21 am Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
As you are...
Quote: |
...putting messages directly onto the transmission queue. |
In which case, are you forming the transmission header? _________________ It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys. |
|
Back to top |
|
 |
Vitor |
Posted: Mon Mar 17, 2008 7:33 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
nicks wrote: |
Yes, I am putting messages directly onto the transmission queue. |
Do not for any reason put to the xmitq directly with an application. Open the remote object and put to that, this will cause the message to be correctly formatted for the MCA to send down the channel. Because this addressing information is missing, the messages are going to the DLQ as undeliverable (how can they be delivered to a missing destination?)
You might also want to review the Intercommunication manual, which explains why applications using MQ should not be aware of the destination of their messages (the only reason an application would use a specific xmitq) but should use an abstracted target _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
nicks |
Posted: Tue Mar 18, 2008 11:16 am Post subject: |
|
|
Novice
Joined: 17 Feb 2008 Posts: 11
|
Ok, I tried to put some remote test messages onto the queue and I can see it going across to the remote queue manager. So I guess thats how it works. I will redesign my application to put messages to the remote queue rather to the transmission queue.
I guess there would be a way where I can put messages onto a local queue (local1) of a queue manager (qmgr1). And then shift messages from local1 to Remote queue (rmq1) under (qmgr1) which would then send it using the transmission queue to the remote queue? Is there some kind of a trigger I would have to define?
Would really appreciate any one's help over this. |
|
Back to top |
|
 |
|