Я хочу реализовать решение Spring-JMS с activeMQ, где я хочу создать прочную подписку на тему. Цель заключается в том, что если абонент некоторое время закрывает подписку и снова воссоздает подписку на длительный срок с тем же идентификатором клиента и именем подписчика, абонент должен получить все сообщения, которые были доставлены во время закрытия абонемента.Spring - ActiveMQ - прочная подписка - закрытие соединения и повторная подписка на получение сообщений в автономном режиме
Я хочу осуществить упомянутую в URL ORACLE для долговечных подписок следующей логики: https://docs.oracle.com/cd/E19798-01/821-1841/bncgd/index.html
Но я не в состоянии выполнить это с помощью пружинного JMS. В соответствии с URL-адресом мне нужно получить экземпляр messageConsumer и вызвать метод close() для этого метода, чтобы временно не получать сообщение из темы. Но я не уверен, как это получить.
Ниже приводится моя конфигурация. Пожалуйста, дайте мне знать, как изменить конфигурацию, чтобы выполнить это.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:jms="http://www.springframework.org/schema/jms"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms.xsd">
<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"
p:userName="admin"
p:password="admin"
p:brokerURL="tcp://127.0.0.1:61616"
primary="true"
></bean>
<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer" p:durableSubscriptionName="gxaa-durable1" p:clientId="gxaa-client1">
<property name="connectionFactory" ref="connectionFactory"/>
<property name="destination" ref="adiTopic"/>
<property name="messageListener" ref="adiListener"/>
</bean>
<bean id="configTemplate" class="org.springframework.jms.core.JmsTemplate"
p:connectionFactory-ref="connectionFactory"
p:defaultDestination-ref="adiTopic" primary="true"
p:pubSubDomain="true">
</bean>
<bean id="adiTopic" class="org.apache.activemq.command.ActiveMQTopic" p:physicalName="gcaa.adi.topic"></bean>
<bean id="adiListener" class="com.gcaa.asset.manager.impl.AdiListener"></bean>
Спасибо Hassen.Он работал, чтобы доставлять сообщения до длительной подписки, когда jmsContainer запускается снова. – learner
Существует одна проблема, когда я начал изучать вышеупомянутое решение. Я не могу полностью отписаться от долговременной подписки, используя вышеупомянутое решение. – learner
Я обновил свой ответ –