記錄一份spring 連線tibco不能重連問題
阿新 • • 發佈:2018-12-25
使用spring jms連線tibco佇列,在佇列重啟之後連線不上佇列,必須重啟才能解決,後修改配置屬性就能收到了,下面是修改後的配置檔案,用來remark一下。
修改點
主要是添加了這個屬性
<property name="cacheLevelName" value="CACHE_SESSION" />
完整版
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!-- 設定tibco 連線地址 -->
<bean id="targetConnectionFactory" class="com.tibco.tibjms.TibjmsConnectionFactory">
<property name="serverUrl" value="${tibco_url}" />
</bean>
<!-- 設定使用者名稱密碼 -->
<bean id="connectionFactory" class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter" >
<property name="targetConnectionFactory" ref="targetConnectionFactory" />
<property name="username" value="${tibco_userName}" />
<property name="password" value="${tibco_pwd}" />
</bean>
<!-- 把jms設定成多例模式 方便取出jmsTempLate 只需要設定佇列名字收發即可 scope="prototype" -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate" scope="prototype">
<property name="connectionFactory" ref="connectionFactory" />
</bean>
<!-- 設定佇列監聽名稱 -->
<bean id="queueDestination" class="com.tibco.tibjms.TibjmsQueue">
<constructor-arg value="${tibco_payserver_in}" />
</bean>
<!-- 設定佇列監聽 -->
<bean id="consumerMessageListener" class="com.imobpay.base.services.ConsumerMessageListener">
<property name="sendTibcoOutName" value="${tibco_payserver_out}" />
<property name="flagReturn" value="${flagReturn}" />
</bean>
<!-- 啟動jms監聽容器 -->
<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destination" ref="queueDestination" />
<property name="messageListener" ref="consumerMessageListener" />
<property name="cacheLevelName" value="CACHE_SESSION" />
</bean>
</beans>