如何在ActiveMQ Artemis中查看消息的messageId?

问题描述 投票:0回答:1

我正在使用

QueueBrowser
从队列中获取消息,但无法获取 messageId。由于某种原因,我的用户 ID 显示了

private void viewMessage() throws NamingException, JMSException {
    Queue queue = (Queue) initialContext.lookup("dynamicQueues/" + "TestQueue");
    if (queueBrowser == null){
        queueBrowser = queueSession.createBrowser(queue);
    }
    Enumeration<Message> messageEnumeration =  queueBrowser.getEnumeration();
    ArrayList<Message> messages = new ArrayList<>();

    while (messageEnumeration.hasMoreElements()){
        messages.add(messageEnumeration.nextElement());
    }
    messages.forEach(value -> {
        try {
            System.out.println(value.getJMSMessageID());
        } catch (JMSException e) {
            throw new RuntimeException(e);
        }
    });
    
}

这是我的控制台中显示的内容:

队列中的消息:

java jms activemq-artemis
1个回答
1
投票

在Artemis中,控制台中显示的消息的“用户ID”是发送客户端(用户)设置的“消息ID”。这有点令人困惑,但这就是 JMS 客户端在发送时在消息上设置的值作为其 JMS 消息 ID。您看到的消息 ID 值是代理为从发件人收到的消息创建的 ID,用于内部跟踪。

© www.soinside.com 2019 - 2024. All rights reserved.