Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JMS自动重新连接到主题_Java_Spring_Jms_Ibm Mq_Spring Integration - Fatal编程技术网

Java JMS自动重新连接到主题

Java JMS自动重新连接到主题,java,spring,jms,ibm-mq,spring-integration,Java,Spring,Jms,Ibm Mq,Spring Integration,我有两个应用程序,一个应用程序发布到某个主题,另一个应用程序读取该主题。我们有一个场景,队列管理器宕机,然后又可以使用。发布服务器(无需重新启动)在队列管理器重新启动后仍能正常工作,但主题使用者在重新启动之前不会收到来自发布服务器的新消息。是否可以在主题使用者上设置一些配置,以便以某种方式刷新其连接?我们在IBMMQ上使用java/spring/spring集成。以下是我们消费者的配置 <bean id="jmsAlertsServiceMessageListener" class="or

我有两个应用程序,一个应用程序发布到某个主题,另一个应用程序读取该主题。我们有一个场景,队列管理器宕机,然后又可以使用。发布服务器(无需重新启动)在队列管理器重新启动后仍能正常工作,但主题使用者在重新启动之前不会收到来自发布服务器的新消息。是否可以在主题使用者上设置一些配置,以便以某种方式刷新其连接?我们在IBMMQ上使用java/spring/spring集成。以下是我们消费者的配置

<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 any task that gets rejected. -->
    <property name="rejectedExecutionHandler">
        <bean class="java.util.concurrent.ThreadPoolExecutor$DiscardPolicy"/>
    </property>
</bean>

默认消息ListenerContainer将根据
recoveryInterval
自动重新连接

启用调试(甚至跟踪)日志记录以了解发生了什么