5

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

2012 年 9 月 13 日 08:00:19 - 进程(3017.20)用户(mqm)程序(amqrmppa_nd)AMQ9544:消息未放入目标队列。

解释:在处理通道“TO_QM_QD2T1_C1”期间,无法将一条或多条消息放入目标队列,并尝试将它们放入死信队列。队列的位置是2,其中1是本地死信队列,2是远程死信队列。

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

4

1 回答 1

1

通道代理在它们之间进行双向通信,即使消息仅在一个方向流动。当一条消息未能在远程端找到目的地时,接下来发生的事情有多种可能性。只有当消息可以成功放置在某个地方并且首先尝试的是远程 DLQ时,通道才会继续运行。如果失败,本地 MCA 必须重新定位消息或停止通道。因此,两个消息通道代理在它们之间确定发生了什么以及通道的状态应该是什么。

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

于 2012-09-13T13:56:31.010 回答