Author |
Message
|
hruettimann |
Posted: Tue Aug 05, 2008 1:29 am Post subject: runmqdlq / dead-letter queue handler problem (AMQ8767) |
|
|
Novice
Joined: 02 Aug 2004 Posts: 11 Location: Switzerland
|
Dear all,
i'm facing a peculiar problem when trying to get messages off the system dead-letter queue using runmqdlq. This is what happened (QM running on Linux / V 6.0.2.1):
Due to an application problem, the normal destination queue became full and a bunch of messages ended up on the dlq. After the problem has been fixed, I wanted to clean up the dlq using runmqdlq (mqrc_q_full / retry), but the handler ends always with
AMQ8767: Unexpected error while getting message from dead-letter queue:
CompCode = 1 Reason = 2190 (MQRC_CONVERTED_STRING_TOO_BIG).
Now I have no idea, why this error appears; the messages seems to be fine, with a normal dead letter header (average message size is just about 300 / 400 bytes). I even tried to forward them to another queue using the 'header-no' option; same result...
I saw some fixes related to somehow similar problems; but they should already be included in 6.0.2.1.
Thanks a lot for any suggestions,
Hans
WebSphere MQ First Failure Symptom Report |
| ========================================= |
| |
| Date/Time :- Monday August 04 17:43:38 CEST 2008 |
| Host Name :- x Linux 2.6.22.18-0.2-default) |
| PIDS :- 5724H7210 |
| LVLS :- 6.0.2.1 |
| Product Long Name :- WebSphere MQ for Linux (x86-64 platform) |
| Vendor :- IBM |
| Probe Id :- OP008000 |
| Application Name :- MQM |
| Component :- odqGetNext |
| SCCS Info :- cmd/servers/amqodqsa.c, 1.43.1.1 |
| Line Number :- 331 |
| Build Date :- Mar 7 2007 |
| CMVC level :- p600-201-070307 |
| Build Type :- IKAP - (Production) |
| UserID :- 0000xxxx (mqm) |
| Program Name :- runmqdlq |
| Addressing mode :- 64-bit |
| Process :- 20290 |
| Thread-Process :- 20290 |
| Thread :- 1 |
| ThreadingModel :- PosixThreads |
| QueueManager :- xxx!QMGR |
| ConnId(1) IPCC :- 84790 |
| Last HQC :- 1.0.0-1522168 |
| Last HSHMEMB :- 0.0.0-0 |
| Major Errorcode :- odq_T_UNEXPECTEDGETNEXTERR |
| Minor Errorcode :- OK |
| Probe Type :- MSGAMQ8767 |
| Probe Severity :- 1 |
| Probe Description :- AMQ8767: Unexpected error while getting message from |
| dead-letter queue: CompCode = 1 Reason = 2190. |
| FDCSequenceNumber :- 0 |
| Arith1 :- 1 1 |
| Arith2 :- 2190 88e |
|
-----------} xcsConvertString rc=xecX_W_INVALID_LEN
-----------{ zstVerifyPCD
-----------} zstVerifyPCD rc=OK
----------} vxtConvertCharsFn rc=MQRC_CONVERTED_MSG_TOO_BIG
---------} vwb_string rc=MQRC_CONVERTED_STRING_TOO_BIG
--------} vwaConvert rc=MQRC_CONVERTED_STRING_TOO_BIG
--------{ vqiLoadFunction |
|
Back to top |
|
 |
exerk |
Posted: Tue Aug 05, 2008 3:42 am Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
The 2190 Reason Code states (extracts from the full text):
Quote: |
On an MQGET call with the MQGMO_CONVERT option included in the GetMsgOpts parameter, a string in a fixed-length field in the message expanded during data conversion and exceeded the size of the field...This reason code can also occur for messages with a format name of MQFMT_IMS_VAR_STRING...The message is returned unconverted, with the CompCode parameter of the MQGET call set to MQCC_WARNING. If the message consists of several parts, each of which is described by its own character-set and encoding fields (for example, a message with format name MQFMT_DEAD_LETTER_HEADER), some parts may be converted and other parts not converted... |
What did you use to look at the messages on the DLQ - MQExplorer? _________________ 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 |
|
 |
hruettimann |
Posted: Tue Aug 05, 2008 3:58 am Post subject: |
|
|
Novice
Joined: 02 Aug 2004 Posts: 11 Location: Switzerland
|
exerk,
I checked the content of the messages on the dlq using the mq-explorer and support pack mo71. |
|
Back to top |
|
 |
exerk |
Posted: Tue Aug 05, 2008 4:08 am Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
MO71 - my favourite!
Have you tried moving the messages from the DLQ to the target queue using MO71? _________________ 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 |
|
 |
hruettimann |
Posted: Tue Aug 05, 2008 6:21 am Post subject: |
|
|
Novice
Joined: 02 Aug 2004 Posts: 11 Location: Switzerland
|
exerk,
I just sent a few messages from the dlq to the original destination queue using mo71. But the application picking up these messages couldn't handle them; I guess it's because the addidional dl-header.
But anyway, thanks a lot for the suggestion! |
|
Back to top |
|
 |
exerk |
Posted: Tue Aug 05, 2008 11:54 pm Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
Only other thing I can suggest is try a bespoke DLQ handler with the convert option removed, other than that I'm out of ideas. Can you identify the field that is causing the problem? _________________ 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 |
|
 |
hruettimann |
Posted: Wed Aug 06, 2008 6:59 am Post subject: |
|
|
Novice
Joined: 02 Aug 2004 Posts: 11 Location: Switzerland
|
exerk,
no, I couldn't identify the field yet; I'll let you know when I have found a solution...  |
|
Back to top |
|
 |
HenriqueS |
Posted: Wed Oct 08, 2008 10:12 am Post subject: |
|
|
 Master
Joined: 22 Sep 2006 Posts: 235
|
Folks, I am facing the same problem here...
Code: |
AMQ8767: Unexpected error while getting message from dead-letter queue:
CompCode = 1 Reason = 2190.
|
Code: |
AMQ8409: Display Queue details.
QUEUE(SYSTEM.DEAD.LETTER.QUEUE) TYPE(QLOCAL)
ACCTQ(QMGR) ALTDATE(2008-09-23)
ALTTIME(15.16.25) BOQNAME( )
BOTHRESH(0) CLUSNL( )
CLUSTER( ) CLWLPRTY(0)
CLWLRANK(0) CLWLUSEQ(QMGR)
CRDATE(2006-09-28) CRTIME(13.13.20)
CURDEPTH(22) DEFBIND(OPEN)
DEFPRTY(0) DEFPSIST(NO)
DEFSOPT(SHARED) DEFTYPE(PREDEFINED)
DESCR(WebSphere MQ Default Dead Letter Queue)
DISTL(NO) GET(ENABLED)
HARDENBO
INITQ(SYSTEM.DEFAULT.INITIATION.QUEUE)
IPPROCS(0) MAXDEPTH(999999999)
MAXMSGL(4194304) MONQ(QMGR)
MSGDLVSQ(PRIORITY) TRIGGER
NPMCLASS(NORMAL) OPPROCS(1)
PROCESS(RUNMQDLQ) PUT(ENABLED)
QDEPTHHI(80) QDEPTHLO(20)
QDPHIEV(DISABLED) QDPLOEV(DISABLED)
QDPMAXEV(ENABLED) QSVCIEV(NONE)
QSVCINT(999999999) RETINTVL(999999999)
SCOPE(QMGR) SHARE
STATQ(QMGR) TRIGDATA( )
TRIGDPTH(1) TRIGMPRI(0)
TRIGTYPE(FIRST) USAGE(NORMAL)
|
In the queue manager error log, I found this...
Code: |
10/08/2008 03:06:07 PM - Process(17541.1) User(root) Program(runmqdlq)
AMQ8708: Dead-letter queue handler started to process
INPUTQ(SYSTEM.DEAD.LETTER.QUEUE).
EXPLANATION:
The dead-letter queue handler (runmqdlq) has been started and has parsed the
input file without detecting any errors and is about to start processing the
queue identified in the message.
ACTION:
None.
-------------------------------------------------------------------------------
10/08/2008 03:06:07 PM - Process(17541.1) User(root) Program(runmqdlq)
AMQ6174: The dynamically loadable shared library '/var/mqm/exits64//MQSTR_r'
was not found. The system returned error number '2' and error message 'No such
file or directory'. The queue manager will continue without this module.
EXPLANATION:
This message applies to UNIX systems. The shared library
'/var/mqm/exits64//MQSTR_r' was not found.
ACTION:
Check that the file exists, and is either fully qualified or is in the
appropriate director, also check the file access permissions.
|
_________________ HenriqueS
Certified Websphere MQ 6.0 System Administrator |
|
Back to top |
|
 |
gbaddeley |
Posted: Wed Oct 08, 2008 7:29 pm Post subject: |
|
|
 Jedi Knight
Joined: 25 Mar 2003 Posts: 2538 Location: Melbourne, Australia
|
Looks like a problem with the Format of the messages. runmqdlq possibly found MQSTR when expecting MQDEAD. _________________ Glenn |
|
Back to top |
|
 |
Mr Butcher |
Posted: Wed Oct 08, 2008 10:45 pm Post subject: |
|
|
 Padawan
Joined: 23 May 2005 Posts: 1716
|
use amqsbcg or something similiar (that is not dowing mqget convert) to browse the dlq, getting a dump of the header and the message and then analyse, e,.g. format, ccsid values and so on.... _________________ Regards, Butcher |
|
Back to top |
|
 |
|