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 » General IBM MQ Support » Deadletter queue and RUNMQTRM

Post new topic  Reply to topic
 Deadletter queue and RUNMQTRM « View previous topic :: View next topic » 
Author Message
ph_dap
PostPosted: Wed Sep 29, 2004 4:06 am    Post subject: Deadletter queue and RUNMQTRM Reply with quote

Novice

Joined: 19 Nov 2003
Posts: 14

I'm running MQ Series 5.2.1 on Windows NT.
I'm having a deadletter queue that contains messages with the deadletter-heading looking like this:
Reason: MQFB_APPL_CANNOT_BE_STARTED.
Destination queue: D_SPCED1.TQ
Destination qm: D_SPCED1
Original encoding: 546
Original CCSID: 5348
Orginal format: MQTRIG
Put Appl. type: Windows NT
Put Appl. Name: RUNMQTRM
Put date: 9/29/2004
Put time: 1:40:50 AM

Message data:
44 4C 48 20 01 00 00 00 DLH ....
09 01 00 00 44 5F 53 50 ....D_SP
43 45 44 31 2E 54 51 20 CED1.TQ
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 44 5F 53 50 D_SP
43 45 44 31 20 20 20 20 CED1
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 22 02 00 00 "...
E4 14 00 00 4D 51 54 52 ä...MQTR
49 47 20 20 0B 00 00 00 IG ....
52 55 4E 4D 51 54 52 4D RUNMQTRM
00 00 00 00 00 00 00 00 ........
00 00 00 00 00 00 00 00 ........
00 00 00 00 32 30 30 34 ....2004
30 39 32 38 32 33 34 30 09282340
35 30 34 37 54 4D 43 20 5047TMC
20 20 20 32 44 5F 53 50 2D_SP
43 45 44 31 2E 53 45 4E CED1.SEN
44 2E 4C 51 20 20 20 20 D.LQ
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 44 5F 53 50 D_SP
43 45 44 31 2E 53 45 4E CED1.SEN
44 2E 50 52 43 20 20 20 D.PRC
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
63 3A 5C 68 6F 6D 65 5C c:\home\
6D 71 6D 5C 62 69 6E 5C mqm\bin\
64 61 70 6D 71 73 30 31 dapmqs01
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
2D 64 20 30 20 63 3A 5C -d 0 c:\
68 6F 6D 65 5C 6D 71 6D home\mqm
5C 64 61 70 6D 71 5C 64 \dapmq\d
61 70 6D 71 2E 63 6F 6E apmq.con
66 20 53 45 4E 44 2E 54 f SEND.T
52 49 47 47 45 52 2E 41 RIGGER.A
51 20 64 3A 5C 68 6F 6D Q d:\hom
65 5C 6D 71 6D 5C 6D 71 e\mqm\mq
6D 70 72 6F 64 5C 6D 71 mprod\mq
6D 61 75 64 69 74 20 20 maudit
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20

When I run runmqdlq with this handler options:
INPUTQ(D_SPCED1.DQ) INPUTQM(D_SPCED1) WAIT(YES) RETRYINT(120)
ACTION(RETRY) RETRY(5)

I get the message:
AMQ8722: Dead-letter queue handler unable to put message: Rule 2 Reason 2191.

When I look at the data in the message, it looks like a call to our module that puts messages on queue (dapmqs01). I can't think of a reason why it says "cannot be started", its there (c:\home\mqm\bin) and runs almost every minute.

So my question: why do these messages appear on the deadletter queue and what can I do to prevent this?

Any respons is greatly appreciated.
regards,

Jake.[/img]
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Wed Sep 29, 2004 4:53 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Those appear to be trigger messages, generated by MQ to be put on initation queues.

It's telling you that your application is not starting properly, as far as the trigger monitor is concerned.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
ph_dap
PostPosted: Wed Sep 29, 2004 5:07 am    Post subject: Reply with quote

Novice

Joined: 19 Nov 2003
Posts: 14

OK, thats clear to me, although I don't understand why MQ comes to this conclusion. Its just an executable getting kicked by MQ, nothing fancy.

Then again. If this is so, how come that the start of this executable is failing just every now and then whereas it is called succesfully almost every minute except for a few failstarts that end up in my DQ?

And once in the DQ, how come I can try to run runmqdlq (with the parameters as described in my initial question) as often as I want, but it keeps coming with the:
"AMQ8722: Dead-letter queue handler unable to put message: Rule 2 Reason 2191" message ?

It should be able to restart the messages, shouldn't it?
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Wed Sep 29, 2004 5:24 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

I'm not sure that there's any good reason to replay a trigger message, especially if you're running your app roughly ever minute (If you're really running your app EVERY minute, you might want to stop using triggers and start using a real scheduler).

As to why this happens occasionally... it's likely a problem with your application. If it were written correctly, it would be logging everything it did, and you'd be able to tell why...

Reason Code 2191 indicates that the DLH isn't able to properly reconstruct the trigger message - it's MQRC_TMC_ERROR. So maybe your DLH can't handle trigger messages...
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
ph_dap
PostPosted: Wed Sep 29, 2004 5:43 am    Post subject: Reply with quote

Novice

Joined: 19 Nov 2003
Posts: 14

Thanks. This clarifies it a bit for me.

One more thing. Is there a method to get the messages from the DQ then?
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Wed Sep 29, 2004 6:11 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

You should be able to configure your DLH to discard these, rather than trying to replay them. That, it should be able to do.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
csmith28
PostPosted: Wed Sep 29, 2004 9:59 am    Post subject: Reply with quote

Grand Master

Joined: 15 Jul 2003
Posts: 1196
Location: Arizona

jefflowrey wrote:
Reason Code 2191 indicates that the DLH isn't able to properly reconstruct the trigger message - it's MQRC_TMC_ERROR. So maybe your DLH can't handle trigger messages...


2191 X’088F’ MQRC_TMC_ERROR
An MQPUT or MQPUT1 call was issued, but the message data contains an MQTMC2
structure that is not valid. Possible errors include the following:
v The StrucId field is not MQTMC_STRUC_ID.
v The Version field is not MQTMC_VERSION_2.
v The BufferLength parameter of the call has a value that is too small to accommodate the
structure (the structure extends beyond the end of the message).
This reason code occurs in the following environments: AIX, HP-UX, Linux, OS/2, OS/400,
Solaris, Windows, plus WebSphere MQ clients connected to these systems.
Corrective action: Correct the definition of the MQTMC or MQTMC2 structure. Ensure that
the fields are set correctly.
_________________
Yes, I am an agent of Satan but my duties are largely ceremonial.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Wed Sep 29, 2004 5:49 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

Is your initial reason on the DLQ 265 ??
You get messages in the DLQ even though the queue is serviced fine ??

We had a bunch of those messages on our UNIX AIX system with java and opened a pmr with IBM. Turns out that this was because some environment variables were not set correctly when starting the trigger monitor.

If you do a search on the site you may find some examples. However I do not know if those same env vars will play in windows...?

Enjoy
Back to top
View user's profile Send private message Send e-mail
Nigelg
PostPosted: Wed Sep 29, 2004 11:47 pm    Post subject: Reply with quote

Grand Master

Joined: 02 Aug 2004
Posts: 1046

If fjb_saper is referring to AMQ_SIGCHLD_SIGACTION, this only applies to AIX and HPUX.
Quote:

The cause of this problem is documented in APAR IY31891, where AIX sets the undocumented errno value of ECHILD when returning from system(). The APAR adds extra code so that the problem can be easily recognised.

The characteristic of the problem is that the system() function returns errno 10, ECHILD. The extra debug code in IY31891 shows this in the trace:

Return from command, SysReturn ffffffff errno 10 WEXITSTATUS -1

The workround is to set the environment variable AMQ_SIGCHLD_SIGACTION to some value in the shell from which the trigger monitor is started, which will cause SIGCHLD to be caught by sigaction() rather than sigwait().
Back to top
View user's profile Send private message
vennela
PostPosted: Sun May 01, 2005 2:02 am    Post subject: Reply with quote

Jedi Knight

Joined: 11 Aug 2002
Posts: 4055
Location: Hyderabad, India

I am going to put CSD09 on HP11.11 boxes. Should I be setting this variable?
I have seen this problem after upgrading from 5.2 to 5.3.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » General IBM MQ Support » Deadletter queue and RUNMQTRM
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.