【问题标题】:IBM MQ XMS Message Listener fetching only the Messages which is already available in Queue and not a new oneIBM MQ XMS 消息侦听器仅获取队列中已经可用的消息而不是新消息
【发布时间】:2021-02-10 18:18:54
【问题描述】:

我有 IBM MQ XMS 的发送方和接收方控制台应用程序。发送方填充队列,接收方使用接收方法使队列管理器出列。我正在使用带有 bool 值的 while 循环来继续运行接收器,以便每当队列接收器中有新消息可用时都可以获取该数据。 现在我想将接收器代码更改为异步消息侦听器而不是 consumer.Receive()。 代码sn-p是,

consumerAsync = sessionWMQ.CreateConsumer(destination);                
messageListener = new MessageListener(OnMessageCallBack);
consumerAsync.MessageListener = messageListener;

connectionWMQ.Start();
While(true)
{
    console.writeline("Wait for message");
}

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

我错过了什么?

【问题讨论】:

  • 这不可能。您是否尝试过运行产品随附的 SimpleAsyncConsumer 示例或 SampleConsumerCS 示例?
  • 我也尝试了 SimpleAsyncConsumer 示例和其他在线提供的示例代码,但得到了相同的结果。

标签: asynchronous ibm-mq xms message-listener


【解决方案1】:

XMS 版本?版本 9.2 有一个由 IBM 10.28.2020 确认的错误。他们正在努力解决问题。 还没有 APAR。 临时解决方案是降级到客户端版本 9.1。

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

【讨论】:

  • 我正在使用 IBMXMSDotnetClient v9.2.0.1。让我降级到 9.1 并检查。感谢您提供信息。
  • 降级后我能够接收到消息,但是当我发送 4 个数据时,只接收到第一条消息并且剩余的数据没有下载,我是否需要给 MQ 一些回调该消息已收到?或者一旦收到消息就必须关闭当前会话并开始一个新会话?请给我建议
  • 查看示例应用程序“SimpleAsyncConsumer”。它应该在内联设置的超时(30 秒)内接收所有消息。默认位置是:C:\Program Files\IBM\MQ\tools\dotnet\samples\cs\xms\simple\wmq\SimpleAsyncConsumer
  • 这取决于这是否是“Transacted”会话,如果不是,确认模式是什么。您能否将创建会话的方式添加到问题中?
  • APAR IT34722 今天关闭,并在 9.2.0.4 和 9.2.5 中显示已修复。
【解决方案2】:

我很久以前(81 天...)就这个问题向 ibm 发布了一个支持案例 这样的bug很久了。 apar 是 IT34722,但目前仍处于打开状态。

9.1.3 可能工作,但有其他问题/错误,不会被发现为 nuget-package

【讨论】:

  • @TomerShetah 在 IBM 关闭 APAR 之前,您无法链接到 IBM APAR。根据 Daniel 的描述,他拥有 APAR 编号,因为 IBM 通过一个案例向他提供了该编号。对于遇到相同问题的其他人来说,这是一个很好的信息,一旦 APAR 关闭,Daniel 应该提供指向 IBM 的 APAR 页面的链接。
  • 我发现降级到最低的 nuget 包 9.1.4 会中断与 v8 服务器的连接。在我升级回 9.2.3 之前会收到 MQRC_UNEXPECTED_ERROR
猜你喜欢
  • 2010-12-04
  • 2011-01-20
  • 2021-09-17
  • 1970-01-01
  • 2022-09-29
  • 2018-02-20
  • 1970-01-01
  • 2017-05-21
  • 1970-01-01
相关资源
最近更新 更多