Example usage for org.apache.zookeeper WatchedEvent getState

List of usage examples for org.apache.zookeeper WatchedEvent getState

Introduction

In this page you can find the example usage for org.apache.zookeeper WatchedEvent getState.

Prototype

public KeeperState getState() 

Source Link

Usage

From source file:com.liveramp.hank.zookeeper.ZooKeeperConnection.java

License:Apache License

/**
 * Listens for notifications from the ZooKeeper service telling that we have
 * been connected, disconnected, or our session has expired.
 * <p/>//from   w  w w .jav a 2s.  c  o  m
 * Upon connection, we first make a call to {@link #onConnect()}, and then we
 * release all threads that are blocking on {@link #waitForConnection()}.
 * <p/>
 * Upon disconnection, we call {@link #onDisconnect()}, and then we reset the
 * latch to block any threads that call {@link #waitForConnection()}.
 * <p/>
 * On session expiry, we call {@link #onSessionExpire()}, reset the latch, and
 * then manually try to reconnect to the ZooKeeper service.
 *
 * @param event
 */
@Override
public void process(WatchedEvent event) {
    if (event.getType() == Event.EventType.None) {
        KeeperState state = event.getState();
        LOG.info("Getting event: " + state);

        for (Coordinator.StateChangeListener listener : listeners) {
            listener.process(state.name());
        }

        switch (state) {
        case SyncConnected:
            onConnect();
            connectedSignal.countDown();
            break;
        case Disconnected:
            onDisconnect();
            connectedSignal = new CountDownLatch(1);
            break;
        case Expired:
            onSessionExpire();
            connectedSignal = new CountDownLatch(1);
            try {
                LOG.info("Attempting ZooKeeper reconnect");
                connect(maxConnectAttempts);
            } catch (IOException e) {
                LOG.error("Failed to connect to the ZooKeeper service", e);
                throw new RuntimeException("Couldn't connect to the ZooKeeper service", e);
            }
            break;
        }
        // Return because we are done processing this event; do not let subclasses
        // process.
        return;
    }
}

From source file:com.martin.zkedit.utils.ZKConnHelper.java

License:Open Source License

public ZooKeeper connect(String hosts, int sessionTimeout) throws IOException, InterruptedException {
    final CountDownLatch connectedSignal = new CountDownLatch(1);
    ZooKeeper zk = new ZooKeeper(hosts, sessionTimeout, new Watcher() {
        @Override/* w w  w .  j ava  2s.  co m*/
        public void process(WatchedEvent event) {
            if (event.getState() == Watcher.Event.KeeperState.SyncConnected) {
                connectedSignal.countDown();
            }
        }
    });
    connectedSignal.await();
    return zk;
}

From source file:com.navercorp.client.Client.java

License:Apache License

public Client(String connectionString, int timeoutms) throws IOException, InterruptedException {
    final CountDownLatch sync = new CountDownLatch(1);
    zk = new ZooKeeper(connectionString, timeoutms, new Watcher() {
        public void process(WatchedEvent event) {
            if (event.getType() == Event.EventType.None
                    && event.getState() == Event.KeeperState.SyncConnected) {
                sync.countDown();//from www . j a v  a 2s.c o  m
            }
        }
    });

    if (sync.await(timeoutms, TimeUnit.MILLISECONDS) == false) {
        zk.close();
        throw new IOException("Connection to zookeeper timed out. connectionString: " + connectionString);
    }
}

From source file:com.navercorp.nbasearc.confmaster.server.WatchEventHandler.java

License:Apache License

@Override
public void process(WatchedEvent event) {
    if (event.getType() == Event.EventType.None) {
        Logger.info(event.toString());
        if (event.getState() == Watcher.Event.KeeperState.SyncConnected) {
            Logger.info("Connection to zookeeper is established. {}", event);
            Logger.flush(INFO);//  w  w  w  . j  a  v a 2s.  co  m
            connWait.countDown();
        } else if (event.getState() == Watcher.Event.KeeperState.Expired) {
            Logger.info("ZooKeeper session expired, shutdown... {}", event);
            Logger.flush(DEBUG);
            System.exit(-1);
        } else {
            Logger.info("Connection to ZooKeeper state changed. {}", event);
            Logger.flush(INFO);
        }
    } else if (event.getType() == Event.EventType.NodeChildrenChanged
            || event.getType() == Event.EventType.NodeDataChanged) {
        processChildrenOrDataChangedEvent(event);
    }
}

From source file:com.navercorp.pinpoint.flink.cluster.FlinkServerRegister.java

License:Apache License

@SuppressWarnings("deprecation")
@Override//w  ww  .  j  a v  a2s  .co  m
public void process(WatchedEvent event) {
    logger.info("Handle Zookeeper Event({}) started.", event);

    KeeperState state = event.getState();
    EventType eventType = event.getType();
    String path = event.getPath();

    // when this happens, ephemeral node disappears
    // reconnects automatically, and process gets notified for all events
    boolean result = false;
    if (ZookeeperUtils.isDisconnectedEvent(event)) {
        result = handleDisconnected();
        if (state == KeeperState.Expired) {
            client.reconnectWhenSessionExpired();
        }
    } else if (state == KeeperState.SyncConnected || state == KeeperState.NoSyncConnected) {
        if (eventType == EventType.None) {
            result = handleConnected();
        } else if (eventType == EventType.NodeChildrenChanged) {
            logger.info("zookeeper Event occurs : NodeChildrenChanged event");
        } else if (eventType == EventType.NodeDeleted) {
            logger.info("zookeeper Event occurs : NodeDeleted");
        } else if (eventType == EventType.NodeDataChanged) {
            logger.info("zookeeper Event occurs : NodeDataChanged");
        }
    }

    if (result) {
        logger.info("Handle Zookeeper Event({}) completed.", event);
    } else {
        logger.info("Handle Zookeeper Event({}) failed.", event);
    }
}

From source file:com.navercorp.pinpoint.web.cluster.zookeeper.ZookeeperClusterManager.java

License:Apache License

@SuppressWarnings("deprecation")
@Override//from  ww  w.jav a2 s. c o  m
public void process(WatchedEvent event) {
    synchronized (initializeLock) {
        // wait for client variable to be assigned.
    }

    logger.info("Zookeeper Event({}) occurred.", event);

    KeeperState state = event.getState();
    EventType eventType = event.getType();
    String path = event.getPath();

    // when this happens, ephemeral node disappears
    // reconnects automatically, and process gets notified for all events
    boolean result = false;
    if (ZookeeperUtils.isDisconnectedEvent(event)) {
        result = handleDisconnected();
        if (state == KeeperState.Expired) {
            client.reconnectWhenSessionExpired();
        }
    } else if (state == KeeperState.SyncConnected || state == KeeperState.NoSyncConnected) {
        if (eventType == EventType.None) {
            result = handleConnected();
        } else if (eventType == EventType.NodeChildrenChanged) {
            result = handleNodeChildrenChanged(path);
        } else if (eventType == EventType.NodeDeleted) {
            result = handleNodeDeleted(path);
        } else if (eventType == EventType.NodeDataChanged) {
            result = handleNodeDataChanged(path);
        }
    }

    if (result) {
        logger.info("Zookeeper Event({}) succeeded.", event);
    } else {
        logger.info("Zookeeper Event({}) failed.", event);
    }
}

From source file:com.navercorp.redis.cluster.gateway.NodeWatcher.java

License:Apache License

/**
 * @param event//from   ww w . j  a va 2s . c  o  m
 * @see org.apache.zookeeper.Watcher#process(org.apache.zookeeper.WatchedEvent)
 */
public void process(WatchedEvent event) {
    log.debug("[NodeWatcher] Zookeeper watched");
    log.info("[NodeWatcher] Event {type=" + event.getType() + ", state=" + event.getState() + ", path="
            + event.getPath() + "}");

    if (event.getType() == Event.EventType.None) {
        switch (event.getState()) {
        case SyncConnected:
            log.debug("[NodeWatcher] SyncConnected");
            this.connLatcher.countDown();
            break;
        default:

        }
    } else if (event.getType() == Event.EventType.NodeChildrenChanged) {
        log.debug("[NodeWatcher] NodeChildrenChanged");
        reloadGatewaylist();
        reloadGatewayAffinity();
    } else if (event.getType() == Event.EventType.NodeDataChanged) {
        log.debug("[NodeWatcher] NodeDataChanged");
        reloadGatewayAffinity();
    } else if (event.getType() == Event.EventType.NodeDeleted) {
        log.debug("[NodeWatcher] NodeDeleted");
    } else if (event.getType() == Event.EventType.NodeCreated) {
        log.debug("[NodeWatcher] NodeCreated");
    }
}

From source file:com.navercorp.redis.cluster.ZookeeperConTest.java

License:Apache License

/**
 * @param event/*from  w w  w .  j  a v a2 s.co m*/
 * @see org.apache.zookeeper.Watcher#process(org.apache.zookeeper.WatchedEvent)
 */
public void process(WatchedEvent event) {
    log.info("[NodeWatcher] Event {type=" + event.getType() + ", state=" + event.getState() + ", path="
            + event.getPath() + "}");

    if (event.getType() == Event.EventType.None) {
        switch (event.getState()) {
        case SyncConnected:
            log.debug("SyncConnected");
            this.connLatcher.countDown();
            break;
        default:

        }
    }
}

From source file:com.nearinfinity.blur.manager.indexserver.BlurServerShutDown.java

License:Apache License

public void register(final BlurShutdown shutdown, ZooKeeper zooKeeper) {
    this.shutdown = shutdown;
    this.zooKeeper = zooKeeper;
    zooKeeper.register(new Watcher() {
        @Override/*from w  w  w  .j  av  a  2s .c  o  m*/
        public void process(WatchedEvent event) {
            KeeperState state = event.getState();
            if (state == KeeperState.Expired) {
                LOG.fatal("Zookeeper session has [" + state + "] server process shutting down.");
                shutdown.shutdown();
            }
        }
    });
}

From source file:com.nesscomputing.service.discovery.job.ZookeeperProcessingTask.java

License:Apache License

@Override
public void process(WatchedEvent event) {
    LOG.debug("Received '%s' event", event.getState());
    switch (event.getState()) {
    case AuthFailed:
        LOG.warn("Got an auth request from zookeeper. Server config is not compatible to this client!");
        break;/*ww  w.  java2s .c  om*/
    case SyncConnected:
        LOG.trace("Session connected");
        connected = true;

        switch (event.getType()) {
        case None:
            break;
        default:
            LOG.trace("Zookeeper state changed: %s", event.getType());
            // Forces running of the work loop.
            generation.incrementAndGet();
            break;
        }

        break;
    case Disconnected:
        LOG.trace("Session disconnected, waiting for reconnect");
        connected = false;
        break;
    case Expired:
        LOG.trace("Session expired, closing zookeeper.");
        connected = false;
        closeZookeeper();
    default:
        // Huh?
        LOG.debug("Failed to process unknown state %s", event.getState());
        break;
    }
}