Failover of MDB connection takes a long time
siano Apr 22, 2005 10:19 AMI have the following problem with clustering (a two node cluster), a JMS-Queue implemented as a HA-Singleton and MDBs with JBoss 4.0.1SP1.
Under some conditions the clustering works:
If I shutdown the node, that hosts the JMS-Queues, the other node will take over the Queues after about 15 seconds and the remaining MDBs on that node start processing the messages again.
Even though I would wish the failover to take part a little faster, this is the expected behavoiur.
However, if I turn off the node, that hosts the JMS queues (or remove the network cable), the remaining node will start to take over the JMS-Queues after about 20 seconds. After that time, I can send new messages to the Queue, but the MDBs don't process them for 15 Minutes. After that time the message processing starts again (and the messages sent in the meantime get processed).
During this 15 Minutes period, I get the following log messages every minute.
2005-04-22 14:21:04,438 WARN [org.jboss.mq.Connection] Connection failure: org.jboss.mq.SpyJMSException: Connection Failed; - nested throwable: (java.io.IOException: ping timeout.) at org.jboss.mq.Connection.asynchFailure(Connection.java:436) at org.jboss.mq.Connection$PingTask.run(Connection.java:1385) at EDU.oswego.cs.dl.util.concurrent.ClockDaemon$RunLoop.run(ClockDaemon.java:364) at java.lang.Thread.run(Thread.java:534) Caused by: java.io.IOException: ping timeout. at org.jboss.mq.Connection$PingTask.run(Connection.java:1377) ... 2 more 2005-04-22 14:21:04,499 WARN [org.jboss.mq.Connection] Connection failure: org.jboss.mq.SpyJMSException: Connection Failed; - nested throwable: (java.io.IOException: ping timeout.) at org.jboss.mq.Connection.asynchFailure(Connection.java:436) at org.jboss.mq.Connection$PingTask.run(Connection.java:1385) at EDU.oswego.cs.dl.util.concurrent.ClockDaemon$RunLoop.run(ClockDaemon.java:364) at java.lang.Thread.run(Thread.java:534) Caused by: java.io.IOException: ping timeout. at org.jboss.mq.Connection$PingTask.run(Connection.java:1377) ... 2 more
Is there a way to reduce the timeout, till the MDBs reconnect to the Queue?