java - JMS automatically reconnecting to TOPIC -


i have 2 apps 1 app publishing topic , app reading topic. had scenario queuemanager went down , available again. publisher (without restart) carries on working fine after queuemanager restarts, topic consumer not recieve new messages publisher until restarted. there configuration can setup on topic consumer refresh connection somehow? using java / spring / spring integration on ibm mq. following configuration of our consumer.

<bean id="jmsalertsservicemessagelistener" class="org.springframework.jms.listener.defaultmessagelistenercontainer">     <property name="connectionfactory" ref="alertconnectionfactory"/>     <property name="destination" ref="alertsservicetopic"/>     <property name="autostartup" value="false"/>     <property name="clientid" value="${ps.alert.clientid}"/>     <property name="taskexecutor" ref="jmstaskexecutor"/>     <property name="subscriptiondurable" value="true"/>     <property name="pubsubdomain" value="true"/>     <property name="messageselector" value="alertstate = 'resolved'"/>     <property name="messagelistener" ref="alertsmessagelistener"/>     <property name="durablesubscriptionname" value="replay"/>     <property name="recoveryinterval" value="30000"/> </bean>  <bean id="alertconnectionfactory" class="com.ibm.mq.jms.mqconnectionfactory"  >     <property name="transporttype" value="1" />        <property name="queuemanager" value="${alert.mq.qm}" />     <property name="hostname" value="${alert.mq.host}" />     <property name="port" value="${alert.mq.port}" />     <property name="channel" value="${alert.mq.channel}" />          <property name="sslciphersuite" value="ssl_rsa_with_rc4_128_sha" />             <property name="brokerpubqueue" value="${alert.mq.topic_connection_factory_broker_pub_queue}"/>     <property name="brokerqueuemanager" value="${alert.mq.topic_connection_factory_broker_queue_manager}"/>     <property name="providerversion" value="${alert.mq.topic_connection_factory_provider_version}"/>     <property name="brokerversion" value="1"/>            <property name="messageselection" value="1"/>      </bean>  <bean id="alertsservicetopic" class="com.ibm.mq.jms.mqtopic">     <constructor-arg value="${alert.mq.topic}" />     <property name="brokerdursubqueue" value="${alert.mq.queue}"/>             <property name="brokerversion" value="1"/>           </bean>  <bean id="alertsmessagelistener" class="org.springframework.integration.jms.channelpublishingjmsmessagelistener">     <property name="requestchannel" ref="alertsjmsinputchannel"/> </bean>  <bean id="jmstaskexecutor" class="org.springframework.scheduling.concurrent.threadpooltaskexecutor">     <property name="corepoolsize" value="1"/>     <property name="maxpoolsize" value="1"/>     <property name="waitfortaskstocompleteonshutdown" value="true"/>     <property name="daemon" value="false"/>     <property name="threadnameprefix" value="jmsinbound-"/>     <property name="queuecapacity" value="3"/>     <!-- discard task gets rejected. -->     <property name="rejectedexecutionhandler">         <bean class="java.util.concurrent.threadpoolexecutor$discardpolicy"/>     </property> </bean> 

the defaultmessagelistenercontainer automatically reconnect according recoveryinterval.

turn on debug (or trace) logging figure out what's happening.


Comments

Popular posts from this blog

get url and add instance to a model with prefilled foreign key :django admin -

android - Keyboard hides my half of edit-text and button below it even in scroll view -

css - Make div keyboard-scrollable in jQuery Mobile? -