Skip to main content

Dead Letter Queue (DLQ) - Collect troubleshooting data for a DLQ problem on Windows - Middleware News

Dead Letter Queue (DLQ) - Collect troubleshooting data for a DLQ problem on Windows -Middleware News



Problem


Documentation required by the support team for a WebSphere MQ Dead Letter Queue (DLQ) problem on the Windows operating systems. Gathering this information before calling IBM support helps expedite the troubleshooting process and saves you time


Collecting documentation required by the support team


Required documentation:

* Error logs
* Browse of messages on the dead letter queue
* Use the amqsbcg sample program to browse the messages on the DLQ.
 Example: amqsbcg MY_DLQ MY_QMGR > amqsbcg.out
+ Where MY_DLQ is the name of your DLQ
+ Where MY_QMGR is the name of your queue manager


Troubleshooting hints and tips

Process to determine why a message is on the DLQ (dead letter queue):

1. Browse the message on the dead letter queue.

2. Locate the dead letter header. The dead letter header starts with the characters '"DLH". Example: 444C 4820 0100 0000 0A01 0000 4D59 2E51 'DLH ........MY.Q'

3. Find the dead letter Reason (the reason the message arrived on the DLQ) in the third word in the dead letter header. In this example the dead letter Reason is: x'0A01 0000'.

4. Perform this step only on Intel processors (Windows, Linux-Intel and OS/2) . On an Intel processor the dead letter reason is in little-endian format (low-order bytes first). Byte swap x'0A01 0000' little-endian, to x'0000 010A' big-endian.

5. Convert hex x'0000 010A' to decimal 266.

6. Use the dead letter reason code to determine why the message was placed on the dead-letter queue. The deal letter reason code is a Reason Code (MQRC_*) ,or a Feedback Code (MQFB_*). Example: MQFB_TM_ERROR 266 X'0000010A'

7. See the dead letter message example (amqsbcg.txt) attached to the bottom on this technote.



Invoking the DLQ handler


Invoke the DLQ handler using the runmqdlq command. You can name the DLQ you want to process and the queue manager you want to use in two ways:

* As parameters to runmqdlq from the command prompt. For example:

runmqdlq ABC1.DEAD.LETTER.QUEUE ABC1.QUEUE.MANAGER
* In the rules table. For example:

INPUTQ(ABC1.DEAD.LETTER.QUEUE) INPUTQM(ABC1.QUEUE.MANAGER)

The above examples apply to the DLQ called ABC1.DEAD.LETTER.QUEUE, owned by the queue manager ABC1.QUEUE.MANAGER.

If you do not specify the DLQ or the queue manager as shown above, the default queue manager for the installation is used along with the DLQ belonging to that queue manager.

The runmqdlq command takes its input from stdin; you associate the rules table with runmqdlq by redirecting stdin from the rules table.

To run the DLQ handler you must be authorized to access both the DLQ itself and any message queues to which messages on the DLQ are forwarded. For the DLQ handler to put messages on queues with the authority of the user ID in the message context, you must also be authorized to assume the identity of other users.

For more information about the runmqdlq command, see runmqdlq (run dead-letter queue handler).

The sample DLQ handler, amqsdlq

In addition to the DLQ handler invoked using the runmqdlq command, WebSphere MQprovides the source of a sample DLQ handler, amqsdlq, whose function is similar to that provided by runmqdlq. You can customize amqsdlq to provide a DLQ handler that meets your requirements. For example, you might decide that you want a DLQ handler that can process messages without dead-letter headers. (Both the default DLQ handler and the sample, amqsdlq, process only those messages on the DLQ that begin with a dead-letter header, MQDLH. Messages that do not begin with an MQDLH are identified as being in error, and remain on the DLQ indefinitely.)

In WebSphere MQ for Windows, the source of amqsdlq is supplied in the directory:

c:\Program Files\IBM\WebSphere MQ\tools\c\samples\dlq

and the compiled version is supplied in the directory:

c:\Program Files\IBM\WebSphere MQ\tools\c\samples\bin

In WebSphere MQ for UNIX systems, the source of amqsdlq is supplied in the directory:

/opt/mqm/samp/dlq (/usr/mqm/samp/dlq on AIX)

and the compiled version is supplied in the directory:

/opt/mqm/samp/bin (/usr/mqm/samp/bin on AIX)

Comments

adsrerrapop

Popular posts from this blog

IBM Websphere MQ interview Questions Part 5

MQ Series: - It is an IBM web sphere product which is evolved in 1990’s. MQ series does transportation from one point to other. It is an EAI tool (Middle ware) VERSIONS:-5.0, 5.1, 5.3, 6.0, 7.0(new version). The currently using version is 6.2 Note: – MQ series supports more than 35+ operating systems. It is platform Independent. For every OS we have different MQ series software’s. But the functionality of MQ series Default path for installing MQ series is:- C: programfiles\BM\clipse\SDK30 C: programfiles\IBM\WebsphereMQ After installation it will create a group and user. Some middleware technologies are Tibco, SAP XI. MQ series deals with two things, they are OBJECTS, SERVICES. In OBJECTS we have • QUEUES • CHANNELS • PROCESS • AUTHENTICATION • QUERY MANAGER. In SERVICES we have LISTENERS. Objects: – objects are used to handle the transactions with the help of services. QUEUE MANAGER maintains all the objects and services. QUEUE: – it is a database structure ...

IBM Websphere MQ Reason code list / mq reason codes / websphere mq error codes / mq error messages

Reason code list ================= The following is a list of reason codes, in numeric order, providing detailed information to help you understand them, including: * An explanation of the circumstances that have caused the code to be raised * The associated completion code * Suggested programmer actions in response to the code * 0 (0000) (RC0): MQRC_NONE * 900 (0384) (RC900): MQRC_APPL_FIRST * 999 (03E7) (RC999): MQRC_APPL_LAST * 2001 (07D1) (RC2001): MQRC_ALIAS_BASE_Q_TYPE_ERROR * 2002 (07D2) (RC2002): MQRC_ALREADY_CONNECTED * 2003 (07D3) (RC2003): MQRC_BACKED_OUT * 2004 (07D4) (RC2004): MQRC_BUFFER_ERROR * 2005 (07D5) (RC2005): MQRC_BUFFER_LENGTH_ERROR * 2006 (07D6) (RC2006): MQRC_CHAR_ATTR_LENGTH_ERROR * 2007 (07D7) (RC2007): MQRC_CHAR_ATTRS_ERROR * 2008 (07D8) (RC2008): MQRC_CHAR_ATTRS_TOO_SHORT * 2009 (07D9) (RC2009): MQRC_CONNECTION_BROKEN * 2010 (07DA) (RC2010): MQRC_DATA_LENGTH_ERROR * 2011 (07DB) (RC2011): MQRC_DYNAMIC_Q_NAME_ERROR * 2012 (07DC) (RC201...

Message Broker (WMB) installation and setup on Linux

Message Broker (WMB) installation and setup on Linux Installing the Binaries As a first step download the trail version of the message broker binaries from IBM site and install them. this part is very simple and process is depends on your operating system. Like for windows, you have .exe file and Linux has rpm and unix you get pkg or other. After installation Set up a broker database [Windows] __ 1. Create the broker database, BRKDB. Open a WebSphere Message Broker Command Console: mqsicreatedb BRKDB This command also establishes the required ODBC connection. _ 2. Verify your user account for the broker database. [Linux] If you are creating Oracle databases for 32-bit brokers on Linux® and UNIX® systems, run the mqsi_setupdatabase command before you create a database. mqsi_setupdatabase– Database–Database_Home_Directory Eg:mqsi_setupdatabase oracle /oracle/product/9i/Db_1 Add $ORACLE_HOME/lib to the end of the MQSI_LIBPATH library search path environment variabl...