Hi all.
I have a question. I started zookeeper(3.2.2) on three servers.
When session expired event fired in following code?
I expected that if client can't connect to server(disconnected) for session
timeout, zookeeper fires session expired event.
I killed three zookeeper server sequentially. Client retry to connect
zookeeper server. Never occured Expired event.

*class WatcherTest {
  public static void main(String[] args) {
    (new **WatcherTest*()).exec();
*  }

  private WatcherTest() throws Exception {
    zk = new ZooKeeper("server1:2181,server2:2181:server3:2181", 10 * 1000,
this);
  }
  private void exec() {
    while(ture) {
      //do something
    }
  }
  public void process(WatchedEvent event) {
    if (event.getType() == Event.EventType.None) {
      switch (event.getState()) {
      case SyncConnected:
        System.out.println("ZK SyncConnected");
        break;
      case Disconnected:
        System.out.println("ZK Disconnected");
        break;
      case Expired:
        System.out.println("ZK Session Expired");
        System.exit(0);
        break;
      }
    }
}
*

Reply via email to