Websphere MQ消息读取

时间:2010-08-11 16:14:04

标签: c# ibm-mq

目前我有一个C#服务正在从队列中读取消息(Websphere MQ)并将它们写入数据库。 每次我进行GET时,消息都会从队列中消失。我想要一个额外的功能。我更喜欢从队列中读取消息,只有在数据库中的写入成功后才将其从队列中删除。请注意我在多线程应用程序中执行所有这些操作。我知道有一种方法可以浏览队列,但这并不能真正提供我需要的功能。

2 个答案:

答案 0 :(得分:0)

我正在编写我的第一个WMQ应用程序,我知道我很快会遇到这个问题,所以我找到了你的问题。

我在其他论坛中发现了这个http://www.mqseries.net/phpBB2/viewtopic.php?t=43043&sid=11ad2d587dbd19056836ccc3f8943e5f(在打开队列时指定MQOO_BROWSE选项),我还没有尝试过,但它认为值得一试......

[]的

答案 1 :(得分:0)

我在C ++中实现了类似的功能。希望这可以帮助你或某人。

您可以使用选项MQGMO_BROWSE_FIRSTMQGMO_BROWSE_NEXT浏览邮件,而无需将其从队列中删除。 How do I browse a Websphere MQ message without removing it?

将消息标识符存储在列表或任何其他合适的数据结构中。 将消息写入数据库。

然后通常没有BROWSE选项从队列中获取消息。 ImqQueue :: Get有两个参数:options和ImqMessage。在调用get之前将消息标识符设置为ImqMessage-class。 ImqMessage充当过滤器。你可以选择 只有那些已成功写入数据库的消息。

http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=%2Fcom.ibm.mq.amqzan.doc%2Fuc10330_.htm