Environment:
Spring : 2.5.6
Weblogic : 8.1 SP4
jdk : 1.4
Tibco EMS server
The configuration below works perfectly for the failover scenario of connecting automatically to failed over server.
But, as i have given the Primary and Secondary EMS server URL details in the JNDI configuration. Spring's DMLC_102 is trying to connect even to the secondary server which is in standby mode.
When i changed the configuration to use TibjmsQueueConnectionFactory in the targetConnectionFactory parameter with the reconnAttemptCount set as 100 the failover scenario is not working.
Is there a way to configure Spring's DMLC_102 to refrain from trying to connect to the Secondary server in standby mode?
Code:<bean id="jmsMessageListener" class="org.springbyexample.jms.JmsMessageListener"> </bean> <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate"> <property name="environment"> <props> <prop key="java.naming.factory.initial"> weblogic.jndi.WLInitialContextFactory </prop> <prop key="java.naming.provider.url"> t3://localhost:7001 </prop> </props> </property> </bean> <bean id="jmsQueueConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="proxyInterface" value="javax.jms.QueueConnectionFactory" /> <property name="lookupOnStartup" value="true" /> <property name="cache" value="false" /> <property name="jndiTemplate"> <ref bean="jndiTemplate" /> </property> <property name="jndiName"> <value>ConnectionFactory</value> </property> </bean> <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiTemplate"> <ref bean="jndiTemplate" /> </property> <property name="jndiName"> <value>Datasource</value> </property> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <bean id="newJmsQueueConnectionFactory" class="com.tibco.tibjms.TibjmsQueueConnectionFactory"> <property name="serverUrl"> <value>${primaryServerUrl},${secondaryServerUrl}</value> </property> <property name="reconnAttemptCount"> <value>100</value> </property> <property name="reconnAttemptDelay"> <value>5000</value> </property> </bean> <bean id="credentialsConnectionFactory" class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter"> <property name="targetConnectionFactory" ref="jmsQueueConnectionFactory" /> <!--<property name="targetConnectionFactory" ref="newJmsQueueConnectionFactory" />--> <property name="username" value="abcd"> </property> <property name="password" value="abcd"> </property> </bean> <bean id="jmsFeedContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer102"> <property name="transactionManager" ref="transactionManager" /> <property name="connectionFactory" ref="credentialsConnectionFactory" /> <property name="destinationResolver" ref="destinationResolver" /> <property name="destinationName" value="org.springbyexample.jms.test" /> <property name="messageListener" ref="jmsMessageListener" /> <property name="recoveryInterval" value="10000" /> </bean> <bean id="destinationResolver" class="org.springframework.jms.support.destination.JndiDestinationResolver"> <property name="jndiTemplate" ref="jndiTemplate" /> </bean>


Reply With Quote
