Hi Julien,

take a look at the FAQ for some background:

Basically when your client connects to the server it provides a "timeout" value. If the server doesn't hear from your client within this timeout period (we do heartbeating for you in a background thread, you don't have to worry about this) then it will expire the session.

You have a watcher for the session - it will be notified both on disconnect but also when/if the session is expired. An expired session is invalid, if this happens you have to create a new session. This is different from a disconnect notification, where you just wait for the client library to reconnect you to the cluster (say you lose connectivity to the server)


On 04/21/2010 01:44 AM, Julien Vey wrote:
Hi all,

I'm currently working with ZooKeeper in CXF D-OSGI and i'm facing a
problem that would require your help.

When a client is connected to the ZooKeeper server, and the connection
is lost, it throws a ConnectionLossException.
The problem is when the connection is back, the client doesn't reconnect
itself. I can see the following trace on the server

2010-04-20 17:44:21,526 - INFO [NIOServerCxn.Factory:>$fact...@251] - Accepted socket
connection from /
2010-04-20 17:44:21,526 - INFO [NIOServerCxn.Factory:] - Client attempting to renew
session0x1281ba54e900005 at /
2010-04-20 17:44:21,527 - INFO [NIOServerCxn.Factory:] - Invalid session
0x1281ba54e900005 for client /, probably expired
2010-04-20 17:44:21,527 - INFO [NIOServerCxn.Factory:] - Closed socket connection for
client / which had sessionid 0x1281ba54e900005

The client tries to reconnect with an expired session id.
Is it possible to configure zookeeper in order that it accepts this
connection by recreating a new session, or maybe something else that
would make the reconnection works ?

Thanks in advance for your help


Reply via email to