"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#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...