当接收器不可用时,ActiveMQ消息丢失

我正在使用activeMQ进行消息传递。当发送者和接收者都可用时,我成功接收到该消息。但是当我按下接收器并重新启动时,排队的消息不会再次接收到接收器。我需要做任何配置吗? 我增加了如下的生活时间,以避免会话到期。

这是我的发件人代码的样子。

Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createTopic(topic);
MessageProducer producer = session.createProducer(destination);
producer.setTimeToLive(18000000L);
TextMessage message = session.createTextMessage(customMessage.getcontent());
producer.send(message);
nichua11 回答:当接收器不可用时,ActiveMQ消息丢失

您正在观察的是预期的行为。由于要将消息发送到JMS topic ,因此您将必须遵守发布/订阅语义。发布/订阅语义规定消息仅放置在有效订阅中。当您的订户处于脱机状态时,它在代理上没有有效的订阅以接收消息,因此,当其脱机时,它将丢失发送给它的消息。

您可以使用耐用订户在订户脱机时接收消息,也可以使用传统的JMS 队列

本文链接:https://www.f2er.com/3013807.html

大家都在问