WMQ如何在远程和本地队列管理器之间交换DLQ信息?

时间:2012-09-13 13:46:49

标签: ibm-mq

当本地队列管理器在其AMQ错误日志中收到以下消息时:

  

09/13/12 08:00:19 - 流程(3017.20)用户(mqm)计划(amqrmppa_nd)   AMQ9544:未将消息放入目标队列。

     

说明:在处理通道'TO_QM_QD2T1_C1'期间,一个或   无法将更多消息放入目标队列和尝试   他们被迫把它们放入一个死信队列。的位置   queue是2,其中1是本地死信队列,2是远程队列   死信队列。

...... MQ交换此类信息的机制是什么?通道程序API本身是否有内置工具,或者信息交换为SYSTEM.CLUSTER.COMMAND.QUEUE上放置的离散消息(如果是集群)?鉴于这可能发生在远程队列定义的情况下,只有简单的发送器/接收器通道对,并且没有相应的COMMAND QUEUE,我可以想象它将通过通道进程通信来处理...只是想知道... < / p>

1 个答案:

答案 0 :(得分:1)

即使消息仅在一个方向上流动,通道代理也会在它们之间进行双向通信。当消息无法在远程端找到目的地时,接下来会发生什么可能性。如果消息可以成功地放在某处,则通道将继续运行,并且首先尝试的是远程DLQ。如果失败,则本地MCA必须重新定位消息或停止通道。因此,两个消息通道代理在它们之间解决了发生的情况以及通道的状态。

错误消息的特殊措辞反映了消息的不同配置来自相同的代码路径和异常处理以及WMQ的优化。 MCA知道消息在那时被放到DLQ上,而不是有两个不同的错误消息或逻辑来计算使用DLQ的措辞,它只是将一个数字放入模板中。因此,单个错误消息和简化的逻辑用于两种可能性。