从 ActiveMQ Classic Scheduled 选项卡获取所有延迟消息

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

我正在执行测试,需要提取所有延迟消息(ActiveMQ Classic gui 中计划的选项卡)。这在 ActiveMQ Classic 中可能吗?我用 Java 编写测试。

我期望消耗每条延迟的消息(未消耗)

Destination management = session.createTopic(ScheduledMessage.AMQ_SCHEDULER_MANAGEMENT_DESTINATION);
MessageProducer mproducer = session.createProducer(management);
Message request = session.createMessage();
request.setStringProperty(ScheduledMessage.AMQ_SCHEDULER_ACTION, ScheduledMessage.AMQ_SCHEDULER_ACTION_BROWSE);
mproducer.send(request);

Destination browseDest = session.createTemporaryQueue();
MessageConsumer browser = session.createConsumer(browseDest);
Message scheduled = browser.receive(5000);
java queue jms activemq
1个回答
0
投票

在将消息发送到调度程序管理地址之前,您需要创建代理将消息发送到的目标和使用者,以便您可以将消息发送的地址分配给消息的回复目标。

Destination browseDest = session.createTemporaryQueue();
MessageConsumer browser = session.createConsumer(browseDest);

Destination management = session.createTopic(ScheduledMessage.AMQ_SCHEDULER_MANAGEMENT_DESTINATION);
MessageProducer mproducer = session.createProducer(management);
Message request = session.createMessage();

request.setJMSReplyTo(browseDest);
request.setStringProperty(ScheduledMessage.AMQ_SCHEDULER_ACTION,
                          ScheduledMessage.AMQ_SCHEDULER_ACTION_BROWSE);

mproducer.send(request);

Message scheduled = browser.receive(5000);
© www.soinside.com 2019 - 2024. All rights reserved.