java - IBM MQ getCurrentDepth 需要 accessQueue

标签 java ibm-mq depth

当我想获取 mq 深度并使用 getCurrentDepth 时,我注意到它不适用于存储/缓存的 mq 队列对象。
我需要一个“新鲜”队列对象,并且需要执行 accessQueue 方法调用、获取队列并在该对象上使用 getCurrentDepth 方法。否则,深度始终为零。

我没有找到有关此行为的任何 Unresolved 问题/文档。

我在 Linux 上使用 Java 版本 7.0 的 MQ 客户端。 我打开的选项是:MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_INQUIRE | MQC.MQOO_INQUIRE | MQC.MQOO_FAIL_IF_QUIESCING 我使用 SSL 连接。

谢谢!

最佳答案

I notice it doesn't work on a stored/cached mq queue object.

不存在存储/缓存的 MQ 队列对象之类的东西。队列类型有:本地、远程、别名集群。

I need a 'fresh' queue object

不存在刷新(refresh)队列对象这样的概念。

getCurrentDepth 方法属于 MQQueue 类。因此,您需要使用MQQueueManager类的accessQueue方法来访问队列。

最后,永远不需要在 MQ 应用程序中使用 getCurrentDepth 方法。您要么收到一条消息,要么循环直到抛出带有 MQRC_NO_MSG_AVAILABLE (2033) 原因代码的 MQException。

关于java - IBM MQ getCurrentDepth 需要 accessQueue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24914423/

相关文章:

java - 如何用IntelliJ IDEA创建jni头文件

Java 客户端监听 WebSphere MQ 服务器?

api - 在 mq api 导出中获取别名队列的已解析队列名称

java - IBM MQ - NoSuchMethodError - getQmgrSplCapability()

树深 : car/cdr contract violation

c# - 将 Kinect 深度保存到二进制文件

Java BufferedImage 保存不需要的背景颜色

java - Android 应用 map View 中只有卫星模式

javascript - 如何使用 selenium 自动化影子 DOM 元素?

c# - 使用列表和堆栈在C#中实现深度优先搜索