Field details for MQDLH
The MQDLH Dead letter header structure describes the information that prefixes the application message data of messages on the dead letter (undelivered-message) queue. A message can arrive on the dead letter queue either because the queue manager or message channel agent has redirected it to the queue, or because an application has put the message directly on the queue.
StrucId (MQCHAR4)
This is the structure identifier of the dead letter header structure. It is always an input field. Its value is MQDLH_STRUC_ID.
- MQDLH_STRUC_ID
- Identifier for the dead letter header structure.
For the C programming language, the constant MQDLH_STRUC_ID_ARRAY is also defined. This has the same value as MQDLH_STRUC_ID, but is an array of characters instead of a string.
Version (MQLONG)
Version is the structure version number.
- MQDLH_VERSION_1
- Version number for dead-letter header structure.
- MQDLH_CURRENT_VERSION
- Current version of dead-letter header structure.
The initial value of this field is MQDLH_VERSION_1.
Reason (MQLONG)
The Reason field identifies the reason why the message was placed on the dead-letter queue instead of on the original destination queue.
This identifies the reason why the message was placed on the dead-letter queue instead of on the
original destination queue. It should be one of the MQFB_* or MQRC_* values (for example,
MQRC_Q_FULL). See the description of the Feedback field in MQMD - Message descriptor for details of the common MQFB_* values that can occur.
If the value is in the range MQFB_IMS_FIRST through MQFB_IMS_LAST, the actual IMS error code can be determined by subtracting MQFB_IMS_ERROR
from the value of the Reason field.
- MQFB_APPL_CANNOT_BE_STARTED (
X'00000109') - An application processing a trigger message cannot start the application named in the
ApplIdfield of the trigger message (see MQTM - Trigger message ).On z/OS®, the CKTI CICS® transaction is an example of an application that processes trigger messages.
- MQFB_APPL_TYPE_ERROR (
X'0000010B') - An application processing a trigger message cannot start the application because the
ApplTypefield of the trigger message is not valid (see MQTM - Trigger message ).On z/OS, the CKTI CICS transaction is an example of an application that processes trigger messages.
- MQFB_BIND_OPEN_CLUSRCVR_DEL (
X'00000119') - The message was on the SYSTEM.CLUSTER.TRANSMIT.QUEUE intended for a cluster queue that was opened with the MQOO_BIND_ON_OPEN option, but the remote cluster-receiver channel to be used to transmit the message to the destination queue was deleted before the message could be sent. Because MQOO_BIND_ON_OPEN was specified, only the channel selected when the queue was opened can be used to transmit the message. As this channel is no longer available, the message is placed on the dead-letter queue.
- MQFB_NOT_A_REPOSITORY_MSG (
X'00000118') - The message is not a repository message.
- MQFB_STOPPED_BY_CHAD_EXIT (
X'00000115') - The message was stopped by channel auto-definition exit.
- MQFB_STOPPED_BY_MSG_EXIT (
X'0000010D') - The message was stopped by channel message exit.
- MQFB_TM_ERROR (
X'0000010A') - The
Formatfield in MQMD specifies MQFMT_TRIGGER, but the message does not begin with a valid MQTM structure. For example, theStrucIdmnemonic eye-catcher might not be valid, theVersionmight not be recognized, or the length of the trigger message might be insufficient to contain the MQTM structure.On z/OS, the CKTI CICS transaction is an example of an application that processes trigger messages and can generate this feedback code.
- MQFB_XMIT_Q_MSG_ERROR (
X'0000010F') - A message channel agent has found that a message on the transmission queue is not in the correct format. The message channel agent puts the message on the dead-letter queue using this feedback code.
The initial value of this field is MQRC_NONE.
DestQName (MQCHAR48)
DestQName is the name of the message queue that was the original destination for the message.
The length of this field is given by MQ_Q_NAME_LENGTH. The initial value of this field is the null string in C, and 48 blank characters in other programming languages.
DestQMgrName (MQCHAR48)
DestQMgrName is the name of the queue manager that was the original destination for the message.
The length of this field is given by MQ_Q_MGR_NAME_LENGTH. The initial value of this field is the null string in C, and 48 blank characters in other programming languages.
Encoding (MQLONG)
Encoding is the numeric encoding of the data that follows the MQDLH structure (usually the data from the original message); it does not apply to numeric data in the MQDLH structure itself.
On the MQPUT or MQPUT1 call, the application must set this field to the value appropriate to the data.
The initial value of this field is 0.
CodedCharSetId (MQLONG)
CodedCharSetId is the character set identifier of the data that flows through the MQDLH structure (usually the data from the original message); it does not apply to character data in the MQDLH structure itself.
- MQCCSI_INHERIT
- Character data in the data following this structure is in the same character set as this
structure.
The queue manager changes this value in the structure sent in the message to the actual character-set identifier of the structure. Provided no error occurs, the value MQCCSI_INHERIT is not returned by the MQGET call.
You cannot use MQCCSI_INHERIT if the value of the
PutApplTypefield in MQMD is MQAT_BROKER.This value is supported in the following environments:
AIX®
IBM® i
Linux®
Windows
The initial value of this field is MQCCSI_UNDEFINED.
Format (MQCHAR8)
Format is the format name of the data that follows the MQDLH structure (usually the data from the original message).
On the MQPUT or MQPUT1 call, the application must set this field to the value appropriate to the
data. The rules for coding this field are the same as those rules for coding the
Format field in MQMD.
The length of this field is given by MQ_FORMAT_LENGTH. The initial value of this field is MQFMT_NONE.
PutApplType (MQLONG)
PutApplType is the type of application that put the message on the dead-letter (undelivered-message) queue.
This field has the same meaning as the PutApplType field in
the message descriptor MQMD (see MQMD - Message descriptor for details).
If the queue manager redirects the message to the dead-letter queue,
PutApplType has the value MQAT_QMGR.
The initial value of this field is 0.
PutApplName (MQCHAR28)
PutApplName is the name of the application that put the message on the dead-letter (undelivered-message) queue.
The format of the name depends on the PutApplType field. The
format can vary release to release. See the description of the
PutApplName field in MQMD - Message descriptor.
If the queue manager redirects the message to the dead-letter queue,
PutApplName contains the first 28 characters of the queue
manager name, padded with blanks if necessary.
The length of this field is given by MQ_PUT_APPL_NAME_LENGTH. The initial value of this field is the null string in C, and 28 blank characters in other programming languages.
PutDate (MQCHAR8)
PutDate is the date when the message was put on the dead-letter (undelivered-message) queue.
- YYYYMMDD
- YYYY
- year (four numeric digits)
- MM
- month of year (01 through 12)
- DD
- day of month (01 through 31)
Greenwich Mean Time (GMT) is used for the PutDate and
PutTime fields, subject to the system clock being set accurately
to GMT.
The length of this field is given by MQ_PUT_DATE_LENGTH. The initial value of this field is the null string in C, and eight blank characters in other programming languages.
PutTime (MQCHAR8)
PutTime is the time when the message was put on the dead-letter (undelivered-message) queue.
- HHMMSSTH
- HH
- hours (00 through 23)
- MM
- minutes (00 through 59)
- SS
- seconds (00 through 59; see note)
- T
- tenths of a second (0 through 9)
- H
- hundredths of a second (0 through 9)
PutTime. This happens when leap seconds are inserted into the
global time standard. Greenwich Mean Time (GMT) is used for the PutDate and
PutTime fields, subject to the system clock being set accurately
to GMT.
The length of this field is given by MQ_PUT_TIME_LENGTH. The initial value of this field is the null string in C, and eight blank characters in other programming languages.