On Mon, Feb 25, 2008 at 02:48:33PM +0100, Marcel Ruff wrote:
David Kerry wrote:
I'm seeing some odd behaviour on one of my clients here and I'm
not sure if it's a bug, feature, or configuration problem. Client
and server are running the 1.6.2 version of code.
1. Why is secretSessionId invalid?
We would need to see the server log for this, possibly the session
2. Is the client connecting in fail safe mode?
o With public session ID > 0: -session.name spiderman_test/1
o -dispatch/callback/retries -1
To detect going DEAD you can register
and react Kerry-like (see xmlBlaster/demo/HelloWorld4.java).
Still it would be good to know why the secret sessionId got invalid.
Well, I figured this out - it was a bit of a misunderstanding on the
session timeout parameter. I didn't look close enough and thought it
was in seconds instead of milliseconds. Thus, my client's sessions
kept timing out on the server side much too fast!
The client wasn't connecting in fail safe mode, and I was using a
connection listener to monitor the connection, which helped my figure
out what was going on.
However, the client behaviour when the server times out the session is
still a little off, I believe.
What I see happening is the server kills the client session (fine),
but the client doesn't notice that fact until it tries to use the
connection (ie: publish), even though it has a connection-ping setup
for every 10 seconds.
Once the publish happens, the client goes 'oh, my connection is dead'
and then starts queuing messages. At this point, however, the client
never goes into a polling mode and the only way to re-establish
communications is to do a disconnect(), re-instatiate a new XmlBlasterAccess
and do another connect(). This whole process also has the side-effect
of erasing all the queued messages. If I try to simply call connect()
again, I get an exception stating "connect() rejected, you are connected
already, please check your code".
My way of working around this for now is to create yet another queue,
in my application that keeps a copy of the saved messages until a
connection is re-established after which it puts them back in the
xmlblaster queue for publishing.
This works, but it's, well, ugly. Is this the intended client behaviour
in this situation? Keep in mind that I'm not concerned about subscriptions
and incoming messages to this client, if that makes a difference.