2009-09-10 77 views
0

我正在开发一个将消息发布到远程MSMQ队列的系统。如果邮件无法传送或接收,我想稍后尝试重新发送。使用MSMQ死信队列或管理队列处理未发送的消息?

一种方法是将发送计算机的所有系统死信队列(DLQ)消息列在 上,并重新发送任何相关消息。 另一种方法是使用管理队列接收任何否定确认并重新发送此队列中的所有消息。

一种方法比另一种更好吗?

我会看到的一个好处是只有相关的消息将出现在管理队列上,而系统DLQ可以有来自其他队列的消息。

是否有任何情况下失败的消息将去DLQ但不是管理队列?

由于 K.

回答

1

我会建议从DLQ重新发送,因为它可以成为广义解和处理来自不同队列的消息重新发送它们。

此外,DLQ是一个系统队列,并保证如果消息没有传递到相应的队列,它将在DLQ中可用。

0

呃。 “如果邮件无法传递或收到,那么我想尝试在以后重新发送”

是不是说MSMQ应该做什么?

+0

MSMQ只会继续尝试发送,直到达到超时(TTRQ或TTBR)。虽然这些可以设置为无限,这可以防止在出现连接/设置问题时检测到任何错误。 – canice