My Application(Standalone with Spring3.1) connecting to a topic which configured in a remote jboss cluster(having two nodes sharing that topic).
I am connecting to that topic using jnp.partitionNam and jnp.discoveryGroup
When I shutdown one of the jboss nodes the other nodes takes control.
After that I get exception on my application:
FIX.log.1:2012-10-30 16:24:00,943 org.springframework.jms.connection.CachingConnectionFactory [WARN] Encountered a JMSException - resetting the underlying JMS Connection
The expected behavior is that my application will retry to connect automaticlly to the remote topic and will continue to have messages - But it doesnt!
To prove that our clusterd jboss mechanisem works fine we are restarting the spring application and then we can see that it starting to get messages as normal (from the second node ofcourse)
So I was sure that the problem is in the Spring's listening configuration.
After disuccusign Spring experts they replied me this:
the "WARN" message you see is ok, it's not an ERROR. It warns that underlying connection from ConnectionFactory was disconnected, so that you see it in the log that something happened. But the next time a connection is needed it will be retrieved from ConnectionFactory. So it's basically the responsibility of ConnectionFactory to handle this situation. In your case it is "org.hornetq.jms.client.HornetQJMSConnectionFactory" and we do not provide support for this class. However I've noticed a constructor argument called "ha" and you have set it to "false". I'd guess it might be "High Availability" option and you can try setting it to "true". But this is merely my speculation/guess and I do not guarantee this helps. You should contact authors of that class for detailed configuration in case of clustered environment."
this is my connectionFactoryBean:
<bean name="connectionFactory" class="org.hornetq.jms.client.HornetQJMSConnectionFactory"> <constructor-arg name="ha" value="false" /> <constructor-arg> <bean class="org.hornetq.api.core.TransportConfiguration"> <constructor-arg value="org.hornetq.core.remoting.impl.netty.NettyConnectorFactory" /> <constructor-arg> <map key-type="java.lang.String" value-type="java.lang.Object"> <entry key="port" value="5445"></entry> </map> </constructor-arg> </bean> </constructor-arg> </bean>
Mybe you have a clue how could I configure it right?