IBM MQ XMS消息侦听器仅获取队列中已可用的消息,而不是新消息



我有用于IBM MQ XMS的发送方和接收方控制台应用程序。发送方填充队列,接收方使用receive方法将队列管理器出列。我使用带有bool值的while循环来保持接收器的运行,以便每当队列中有新消息可用时,接收器都可以获得这些数据。现在,我想将接收器代码更改为异步消息侦听器,而不是消费者。接收((。代码片段是,

consumerAsync = sessionWMQ.CreateConsumer(destination);                
messageListener = new MessageListener(OnMessageCallBack);
consumerAsync.MessageListener = messageListener;
connectionWMQ.Start();
While(true)
{
console.writeline("Wait for message");
}

上面的代码只获取已经可用的数据,而不获取新的数据。例如,如果在启动接收器应用程序时,队列中有2个数据,则这些消息将被下载。但当我保持接收器应用程序运行并从发送器应用程序发送新数据时,它不会被下载,我必须重新启动接收器应用程序才能获得数据。类似的场景在同步模式消费者。ReceiveNoWait((。

我错过了什么?

XMS的版本?9.2版有一个错误,已由IBM 10.28.2020确认。他们正在进行修复还没有APAR临时解决方案是降级到客户端9.1版本。

更新:收到了基于版本9.2.0.1 IT34722的修复程序。测试正常。应与固定包9.2.0.4一起发布。

我很久以前(81天…(就这个问题向ibm发布了一个支持案例这么一个bug已经很久了。apar是IT34722,但目前仍处于开放状态。

9.1.3可能工作,但有其他问题/错误,不会作为nuget包找到

最新更新