XMS mq client_acknowledge - 单独确认消息

时间:2016-01-22 10:58:25

标签: c# ibm-mq xms

我正在尝试编写能够抵御意外情况的MQ客户端。 我用client_acknowledge模式创建了客户端:

ISession session = conn.CreateSession(false, AcknowledgeMode.ClientAcknowledge);

在XMS文档中,有关于CLIENT_ACKNOWLEDGE的信息:

  

应用程序可以确认收到每条消息   单独地,或者它可以接收一批消息并致电   确认方法仅适用于它收到的最后一条消息。当。。。的时候   确认方法称为自上次收到的所有消息   这个方法被认可了。

客户端从队列中提取10条消息并将其写入数据库。

问题是如何设置此模式并确认每条消息(确保消息传递)?

1 个答案:

答案 0 :(得分:1)

当邮件发送到您的应用程序时,它是如何丢失的?

由于您正在处理两种资源,为什么不进行事务处理会话或XA事务处理会话。如果更新数据库存在问题,您可以执行回滚以便重新传递邮件。

<强>更新

在交易会话中,确认模式没有意义。调用提交时会确认消息,或者在调用回滚时回滚消息。

如果与IBM MQ队列管理器的连接丢失,则队列管理器将自动回滚所有未提交的消息。所以没有消息丢失。