java - 检查 MQ 队列深度

标签 java ibm-mq

谁能帮忙用 java 编写获取队列深度的代码。我们在 IBM WebSphere MQ 中有 4 个队列,其中有消息。

我想编写一个 jsp 来在运行报告时读取队列名称及其深度。 我该怎么做?

最佳答案

参见 http://blog.guymahieu.com/2008/06/11/getting-the-depth-of-an-mqseries-queue-from-java/ .

我重新实现如下:

import com.ibm.mq.*;

public class QueueManager {

    private final String host;
    private final int port;
    private final String channel;
    private final String manager;
    private final MQQueueManager qmgr;

    public QueueManager(String host, int port, String channel, String manager) throws MQException {
        this.host = host;
        this.port = port;
        this.channel = channel;
        this.manager = manager;
        this.qmgr = createQueueManager();
    }

    public int depthOf(String queueName) throws MQException {
        MQQueue queue = qmgr.accessQueue(queueName, MQC.MQOO_INQUIRE | MQC.MQOO_INPUT_AS_Q_DEF, null, null, null);
        return queue.getCurrentDepth();
    }

    @SuppressWarnings("unchecked")
    private MQQueueManager createQueueManager() throws MQException {
        MQEnvironment.channel = channel;
        MQEnvironment.port = port;
        MQEnvironment.hostname = host;
        MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES);
        return new MQQueueManager(manager);
    }
}

将以下 jar 放在你的类路径中:

  • com.ibm.mq*jar
  • j2ee.jar

关于java - 检查 MQ 队列深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8656245/

相关文章:

java.io.FileNotFoundException - 文件确实存在于目录中

java - java中如何将字符串与对象实例关联起来

ibm-mq - 向 MQOutput 节点发送消息

java - JMS/MQ 消息传递的独立应用程序的可能性?

java - 如何以最简单的方式准备运行Tomcat服务器的环境?

java - 你能用谷歌端点设置一个简单的登录系统吗

java - 在服务器上的 RESTful Web 服务上运行时出现 Liberty Server 错误

cluster-computing - Websphere MQ 集群

java - GitHub 上的 Java 代码覆盖率工具

java - 在 java 客户端中设置 MQ header