"thammoud" wrote : 
  | if we restart the server from under the client and the server comes back in 
less time than the ping period (Very possible), then the client's JMS 
connection listener does not get called yet the connection is invalid. 
  | 

Hmmm.  I think what you're seeing is due to the fact that the socket transport 
uses a connection pool.  If you shut down the server gracefully, the client 
should detect that existing connections are stale, and the next invocation by 
ConnectionValidator should get a new connection to the new server and, since 
the invocation succeeds, there's no notification.

But the JBM client should experience the same behavior.  Are you actually 
seeing a case where "the client's JMS connection listener does not get called 
yet the connection is invalid" ?

By the way, I have a couple of problems with your proposed fix.

"thammoud" wrote : 
  | Make the tt (WaitOnConnectionCheckTimerTask) a class member (Must be 
volatile).
  | 

There could be multiple instances of ConnectionValidator in the same JVM, each 
connected to a different server.

"thammoud" wrote : 
  | Add while(tt != null) {} 
  | 

NO BUSY WAITS!!! :)

Anyway, if you set validatorPingPeriod to be longer than validatorPingTimeout, 
I don't think that would be necessary.

-Ron

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4216412#4216412

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4216412
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to