【问题标题】:Getting TIBCO EMS Queue details from java从 java 获取 TIBCO EMS 队列详细信息
【发布时间】:2019-08-13 21:35:29
【问题描述】:

我正在研究 POC: 1. 从我的 Java 应用程序中获取给定 TIBCO EMS 服务器上的队列列表。 2. 从队列列表中,单击队列名称时,应显示该队列上的待处理消息(如消息名称、消息属性等)。

能够使用 TibJmsAdmin 实现上述第 1 点。但不确定如何实现第 2 点。 过去曾使用 TibjmsConnectionFactory 在主题/队列上生成和使用消息。但是我如何获取特定队列上未决消息的信息。

提前致谢。

【问题讨论】:

    标签: tibco


    【解决方案1】:

    如果您正在查找队列或主题的统计信息,请尝试以下操作:

    TibjmsAdmin admin = new TibjmsAdmin(serverUrl,username,password);
    
    DestinationInfo di = null;
    if (useTopic) {
        di = admin.getTopic(destName);
    } else {
        di = admin.getQueue(destName);
    }
    
    StatData iStats = di.getInboundStatistics();
    StatData oStats = di.getOutboundStatistics();
    
    long pendingMessages = di.getPendingMessageCount();
    long pendingSize = di.getPendingMessageSize();
    long inMsgRate = iStats.getMessageRate();
    long inByteRate = iStats.getByteRate();
    long outMsgRate = oStats.getMessageRate();
    long outByteRate = oStats.getByteRate();
    

    如果您希望浏览队列中的消息而不使用它们,请尝试使用 QueueBrowser:

    QueueBrowser browser = session.createBrowser(queue);
    Enumeration msgs = browser.getEnumeration();
    
    int browseCount=0;
    
    while (msgs.hasMoreElements())
    {
        message = (javax.jms.Message)msgs.nextElement();
        System.err.println("Browsed message: number="+message.getIntProperty("msg_num"));
        browseCount++;
    }
    

    【讨论】:

    • 谢谢。那行得通!正在寻找给定队列的消费者和生产者的详细信息……连接 ID、会话 ID 等详细信息。此外,正在寻找给定队列的队列大小、生产者计数。但是没找到。
    猜你喜欢
    • 1970-01-01
    • 2015-04-26
    • 1970-01-01
    • 2022-08-19
    • 2019-11-17
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 2013-04-26
    相关资源
    最近更新 更多