【发布时间】:2015-06-23 00:33:57
【问题描述】:
我正在使用 XMS(即 IBM Message Services Client for .NET)连接到 IBM MQ 并获取消息。
话虽如此,我想知道如何在任何给定时间点获取队列中的消息计数。
(在 IQueueBrowser.GetEnumerator 上探索,但它会将消息下载到客户端。)
【问题讨论】:
-
如果不将消息从队列中取出,就无法获得计数。
我正在使用 XMS(即 IBM Message Services Client for .NET)连接到 IBM MQ 并获取消息。
话虽如此,我想知道如何在任何给定时间点获取队列中的消息计数。
(在 IQueueBrowser.GetEnumerator 上探索,但它会将消息下载到客户端。)
【问题讨论】:
XMS .NET 是 JMS 规范的实现,而 JMS 特定并没有定义检索队列中消息计数的方法或属性。因此 XMS 没有提供这样做的方法。
与队列属性有关的任何事情都是提供者特定的管理工作,因此您必须使用消息提供者特定的 API。
但是为什么你想知道消息的数量呢?应用程序应该被编码为连续接收消息。当队列中没有更多消息或等待更多消息时,您的应用程序可以选择退出接收消息。如果没有消息,接收调用将返回空消息对象。您的应用程序可以对此进行检查并决定是否继续接听电话或退出。
HTH
【讨论】: