Ron Sigal [
http://community.jboss.org/people/ron.sigal%40jboss.com] created the
discussion
"Re: LeasePinger, sessionId, jboss messaging"
To view the discussion, visit:
http://community.jboss.org/message/582914#582914
--------------------------------------------------------------
Hi Mark,
Actually, the behavior you describe is what I would expect. Assuming the LeasePinger
fires before the ConnectionValidator when you let the Client run:
1. The Lease times out and gets destroyed.
2. The LeasePinger fires, the ServerInvoker sees a new clientSessionId and recreates the
Lease.
3. The ConnectionValidator fires, the ServerInvoker sees an existing lease, returns true,
and the ConnectionValidator is happy.
I don't consider this sequence a Remoting bug since there is no specification that
says anything different should happen. However, it may be a semantic mismatch with JBoss
Messaging requirements. More about that further on.
But I'm not sure your "recreation" is a faithful representation of the
problem. When you say "the connection becomes dead on the server side", do you
mean
1. the server is alive but the network connection has failed, or
2. the server has died and been restarted.
In the first case, which, I think, matches your recreation, it's not clear to me that
there's a problem. If the server is temporarily unavailable, is it necessary for the
client to disconnect? That's a question for JBoss Messaging. I don't know the
answer.
In the second case, then, it turns out, JBoss Messaging wants the client to disconnect.
We became aware of this requirement only recently, and I've implemented
https://issues.jboss.org/browse/JBREM-1144 JBREM-1144 "Extend connection identity to
server side" in response. The matchng JBoss Messaging issue is JBMESSAGING-1843
https://issues.jboss.org/browse/JBMESSAGING-1843 "Incorporate JBREM-1144". This
new feature, which will be availble in the next releases of Remoting and JBoss Messaging,
will make it possible for the ConnectionValidator to recognize that the server has been
replaced and to declare that the connection has been broken.
So, I believe case 2 is solved. I don't know what should happen in case 1. What do
you think?
-Ron
--------------------------------------------------------------
Reply to this message by going to Community
[
http://community.jboss.org/message/582914#582914]
Start a new discussion in JBoss Remoting at Community
[
http://community.jboss.org/choose-container!input.jspa?contentType=1&...]