2) if I change the values validatorPingTimeout to 10000 and validatorPingPeriod = 15000 we are able to start our client with out the JMS client thinks it should failover and messages are received. But if I bring down one of the two servers it fail in the failover procedure with an JMSExeception
TopicConnection connection = ((TopicConnectionFactory) lookup).createTopicConnection();session = connection.createTopicSession(true,Session.AUTO_ACKNOWLEDGE);Topic topic = (Topic) context.lookup(JNDI_NAME_REMOTE_EVENT_TOPIC);subscriber = session.createSubscriber(topic);subscriber.setMessageListener(this);connection.setExceptionListener(this);((JBossConnection) connection).registerFailoverListener(this);connection.start();
<mbean code="org.jboss.remoting.transport.Connector"
name="jboss.messaging:service=Connector,transport=sslbisocket"
display-name="SSL Bisocket Transport Connector">
<attribute name="Configuration">
<config>
<invoker transport="sslbisocket">
<!-- There should be no reason to change these parameters - warning!
Changing them may stop JBoss Messaging working correctly -->
<attribute name="marshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>
<attribute name="unmarshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>
<attribute name="dataType" isParam="true">jms</attribute>
<attribute name="socket.check_connection" isParam="true">false</attribute>
<attribute name="serverBindAddress">${jboss.bind.address}</attribute>
<attribute name="serverBindPort">4459</attribute>
<attribute name="clientSocketClass" isParam="true">org.jboss.jms.client.remoting.ClientSocketWrapper</attribute>
<attribute name="serverSocketClass">org.jboss.jms.server.remoting.ServerSocketWrapper</attribute>
<attribute name="serverSocketFactory">jboss.messaging:service=ServerSocketFactory,type=SSL</attribute>
<attribute name="clientConnectAddress">10.245.256.10</attribute>
<attribute name="onewayThreadPool">org.jboss.jms.server.remoting.DirectThreadPool</attribute>
<!-- the following parameters are useful when there is a firewall between client and server. Uncomment them if so.-->
<attribute name="numberOfCallRetries" isParam="true">5</attribute>
<attribute name="pingFrequency" isParam="true">30000</attribute>
<attribute name="pingWindowFactor" isParam="true">71582</attribute>
<attribute name="generalizeSocketException" isParam="true">true</attribute>
<!-- Now remoting supports socket write timeout configuration. Uncomment this if you need it. -->
<!--
<attribute name="writeTimeout" isParam="true">30000</attribute>
-->
<!-- End immutable parameters -->
<attribute name="stopLeaseOnFailure" isParam="true">true</attribute>
<!-- Periodicity of client pings. Server window by default is twice this figure -->
<attribute name="clientLeasePeriod" isParam="true">10000</attribute>
<attribute name="validatorPingPeriod" isParam="true">10000</attribute>
<attribute name="validatorPingTimeout" isParam="true">5000</attribute>
<attribute name="failureDisconnectTimeout" isParam="true">0</attribute>
<attribute name="callbackErrorsAllowed">1</attribute>
<attribute name="registerCallbackListener">false</attribute>
<attribute name="useClientConnectionIdentity" isParam="true">true</attribute>
<attribute name="timeout" isParam="true">0</attribute>
<!-- Max Number of connections in client pool. This should be significantly higher than
the max number of sessions/consumers you expect -->
<attribute name="JBM_clientMaxPoolSize" isParam="true">200</attribute>
<!-- The maximum time to wait before timing out on trying to write a message to socket for delivery -->
<attribute name="callbackTimeout">10000</attribute>
<!-- Use these parameters to specify values for binding and connecting control connections to
work with your firewall/NAT configuration -->
<attribute name="secondaryBindPort">4462</attribute>
<attribute name="secondaryConnectPort">4462</attribute>
</invoker>
<handlers>
<handler subsystem="JMS">org.jboss.jms.server.remoting.JMSServerInvocationHandler</handler>
</handlers>
</config>
</attribute>
<depends>jboss.messaging:service=ServerSocketFactory,type=SSL</depends>
</mbean>