DeadLetterQName (MQCHAR48)

这是在本地队列管理器上定义为死信 (undelivered-message) 队列的队列的名称。 如果无法将消息路由到其正确的目标,那么会将这些消息发送到此队列。

例如,在以下情况下,消息将放入此队列中:
  • 消息到达队列管理器,其目标是尚未在该队列管理器上定义的队列
  • 消息到达队列管理器,但其目标队列无法接收消息,原因可能是:
    • 队列已满
    • 禁止放置请求
    • 发送节点无权将消息放入队列

应用程序还可以将消息放在死信队列上。

报告消息的处理方式与普通消息相同; 如果报告消息无法传递到其目标队列 (通常是原始消息的消息描述符中的 ReplyToQ 字段指定的队列) ,那么报告消息将放置在死信 (未传递的消息) 队列上。

注: 已超过到期时间的消息 (请参阅 MQMD-到期字段 ) 不会 在废弃时传输到此队列。 但是,如果发送应用程序请求,那么仍会生成到期报告消息 (MQRO_EXPIRATION) 并将其发送到 ReplyToQ 队列。

如果发出放置请求的应用程序已通过 MQPUT 或 MQPUT1 调用返回的原因码 (例如,在禁止放置请求的本地队列上放置的消息) 同步通知问题,那么不会将消息放入死信 (不可传递的消息) 队列中。

死信 (undelivered-message) 队列上的消息有时会以 MQDLH 结构作为其应用程序消息数据的前缀。 此结构包含额外的信息,用于指示将消息放入死信 (undelivered-message) 队列的原因。 有关此结构的更多详情,请参阅 MQDLH - 死信标头

此队列必须是本地队列,并且 Usage 属性为 MQUS_NORMAL。

如果队列管理器不支持死信 (undelivered-message) 队列,或者尚未定义一个队列,那么名称全部为空白。 所有 IBM® MQ 队列管理器都支持死信 (undelivered-message) 队列,但缺省情况下未定义此队列。

如果由于某种其他原因未定义,完全或不可用死信 (undelivered-message) 队列,那么将在传输队列上保留本应由消息通道代理传输到该队列的消息。

要确定此属性的值,请将 MQCA_DEAD_LETTER_Q_NAME 选择器与 MQINQ 调用配合使用。 此属性的长度由 MQ_Q_NAME_LENGTH 提供。