如何让DurableSubscriber一直存在(JMS,Java)

How to make DurableSubscriber always exist (JMS, Java)

我正在使用 activeMQ,我想知道我们是否可以让 DurableSubscriber 始终存在。让我解释一下。

我为了接收我的主题,DurableSubscriber 首先需要至少 运行 一次。它需要存在。它可以是活动的或非活动的,但如果它不存在,那么在第一个 运行 之前发送的所有主题都将丢失。

如果我的订阅者处于非活动状态,我的消息确实会被保存,如果我在消息延迟之前重新激活我的订阅者,它会正确接收它们。但我仍然需要先 运行 我的主题接收器一次才能打开连接。

那么有什么办法可以防止这种情况发生吗? "Like saying to the sender "嘿伙计,别担心他们是订阅者,但他还不存在,所以等他”或让订阅者永远存在。

提前致谢。

好吧其实这是我的一个错误。如果其他人犯同样的错误,我会回答我自己的问题。

在经纪人部分的 activemq.xml 中:

 <broker useJmx="true"  xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" offlineDurableSubscriberTimeout="30000" offlineDurableSubscriberTaskSchedule="15000">

你们都看到我放错了offlineDurableSubscriberTimeout="3000000" offlineDurableSubscriberTaskSchedule="15000"

这实际上每 3000 秒关闭一次我的订阅者。

所以是的,有一种方法可以使持久订阅者始终存在。只需要避免 offlineDurableSubscriberTimeout="X" 直到服务器重新启动,订阅者才会存活。