Spring integration Spring集成通过JBOSS资源适配器自动重新连接到IBM MQ
我们在项目中使用Spring集成,我们有一个需求,即如果IBM MQ宕机,那么我们必须在它启动时自动连接到IBM MQ。我们使用Spring integration Spring集成通过JBOSS资源适配器自动重新连接到IBM MQ,spring-integration,ibm-mq,spring-jms,Spring Integration,Ibm Mq,Spring Jms,我们在项目中使用Spring集成,我们有一个需求,即如果IBM MQ宕机,那么我们必须在它启动时自动连接到IBM MQ。我们使用org.springframework.jms.listener.DefaultMessageListenerContainer类的recoveryInterval选项完成了这个实现。我们已给定恢复间隔值以尝试恢复MQ连接。但在MQ重新启动后,它不会恢复连接。以下是我现有的配置: <jms:message-driven-channel-adapter
org.springframework.jms.listener.DefaultMessageListenerContainer
类的recoveryInterval
选项完成了这个实现。我们已给定恢复间隔值以尝试恢复MQ连接。但在MQ重新启动后,它不会恢复连接。以下是我现有的配置:
<jms:message-driven-channel-adapter id="adapterId" channel="raw-channel" container="messageListenerContainer" />
<bean id="messageListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="customQueueCachingConnectionFactory" />
<property name="destination" ref="requestQueue" />
<property name="recoveryInterval" value="60000" />
</bean>
Below is the Current Connection Factory :
<bean id="queueCachingConnectionFactory"
class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="targetConnectionFactory" ref="queueConnectionFactory" />
<property name="sessionCacheSize" value="10" />
<property name="cacheProducers" value="false" />
<!-- <property name="reconnectOnException" value="true" /> -->
<!-- <property name="exceptionListener" ref="MQExceptionListener"></property> -->
</bean>
<jee:jndi-lookup id="queueConnectionFactory" jndi-name="MQConnectionFactory"
expected-type="javax.jms.ConnectionFactory" lookup-on-startup="true"></jee:jndi-lookup>
<jee:jndi-lookup id="queue" jndi-name="Queue"
expected-type="javax.jms.Queue" lookup-on-startup="true"/>
提前谢谢 默认消息侦听容器应引用缓存连接工厂:
<!-- caching connection factory fascade, also implements exception listener -->
<bean id="cachingConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="targetConnectionFactory" ref="connectionFactory"/>
<property name="sessionCacheSize" value="10"/>
<property name="reconnectOnException" value="true"/>
</bean>
<!-- this is the Message Driven POJO (MDP) -->
<bean id="messageDrivenPOJO" class="com.redhat.gss.spring.MessageDrivenPOJO" />
<!-- The message listener container -->
<bean id="messageListener" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="sessionTransacted" value="true"/>
<property name="concurrentConsumers" value="1"/>
<property name="cacheLevelName" value="CACHE_CONSUMER"/>
<property name="receiveTimeout" value="10000"/>
<property name="sessionAcknowledgeMode" value="2"/>
<property name="messageListener" ref="messageDrivenPOJO"/>
<property name="connectionFactory" ref="cachingConnectionFactory"/>
<property name="exceptionListener" ref="cachingConnectionFactory"/>
<property name="destination" ref="jbossQueue"/>
</bean>
默认消息侦听容器应引用缓存连接工厂:
<!-- caching connection factory fascade, also implements exception listener -->
<bean id="cachingConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="targetConnectionFactory" ref="connectionFactory"/>
<property name="sessionCacheSize" value="10"/>
<property name="reconnectOnException" value="true"/>
</bean>
<!-- this is the Message Driven POJO (MDP) -->
<bean id="messageDrivenPOJO" class="com.redhat.gss.spring.MessageDrivenPOJO" />
<!-- The message listener container -->
<bean id="messageListener" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="sessionTransacted" value="true"/>
<property name="concurrentConsumers" value="1"/>
<property name="cacheLevelName" value="CACHE_CONSUMER"/>
<property name="receiveTimeout" value="10000"/>
<property name="sessionAcknowledgeMode" value="2"/>
<property name="messageListener" ref="messageDrivenPOJO"/>
<property name="connectionFactory" ref="cachingConnectionFactory"/>
<property name="exceptionListener" ref="cachingConnectionFactory"/>
<property name="destination" ref="jbossQueue"/>
</bean>
您还应该共享连接工厂
配置。另外,也要分享关于此事的日志。如果你说“通过JBOSS资源适配器”,可能问题就在那里,而不是在春天…@ArtemBilan:你能帮我解决上面的问题吗?你也应该共享ConnectionFactory
config。另外,也要分享关于此事的日志。如果你说“通过JBOSS资源适配器”,也许问题就在那里,而不是在春天…@ArtemBilan:你能帮我解决上面的问题吗