List of usage examples for org.apache.zookeeper WatchedEvent getState
public KeeperState getState()
From source file:com.continuuity.weave.internal.state.ZKServiceDecorator.java
License:Open Source License
private Watcher createConnectionWatcher() { final AtomicReference<Watcher.Event.KeeperState> keeperState = new AtomicReference<Watcher.Event.KeeperState>(); return new Watcher() { @Override//w w w .j a va2s. c om public void process(WatchedEvent event) { // When connected (either first time or reconnected from expiration), creates a ephemeral node Event.KeeperState current = event.getState(); Event.KeeperState previous = keeperState.getAndSet(current); LOG.info("Connection state changed " + previous + " => " + current); if (current == Event.KeeperState.SyncConnected && (previous == null || previous == Event.KeeperState.Expired)) { String liveNode = "/instances/" + id; LOG.info("Create live node " + liveNode); JsonObject content = new JsonObject(); content.add("data", liveNodeData.get()); listenFailure(zkClient.create(liveNode, encodeJson(content), CreateMode.EPHEMERAL)); } } }; }
From source file:com.continuuity.weave.internal.zookeeper.KillZKSession.java
License:Apache License
/** * Kills a Zookeeper client to simulate failure scenarious during testing. * Callee will provide the amount of time to wait before it's considered failure * to kill a client.// ww w .ja v a 2 s. c o m * * @param client that needs to be killed. * @param connectionString of Quorum * @param maxMs time in millisecond specifying the max time to kill a client. * @throws IOException When there is IO error * @throws InterruptedException When call has been interrupted. */ public static void kill(ZooKeeper client, String connectionString, int maxMs) throws IOException, InterruptedException { final CountDownLatch latch = new CountDownLatch(1); ZooKeeper zk = new ZooKeeper(connectionString, maxMs, new Watcher() { @Override public void process(WatchedEvent event) { if (event.getState() == Event.KeeperState.SyncConnected) { latch.countDown(); } } }, client.getSessionId(), client.getSessionPasswd()); try { Preconditions.checkState(latch.await(maxMs, TimeUnit.MILLISECONDS), "Fail to kill ZK connection."); } finally { zk.close(); } }
From source file:com.continuuity.weave.internal.zookeeper.RewatchOnExpireWatcher.java
License:Open Source License
@Override public void process(WatchedEvent event) { if (delegate != null && event.getType() != Event.EventType.None) { try {/* w ww .j a v a 2s . co m*/ delegate.process(event); } catch (Throwable t) { LOG.error("Watcher throws exception.", t); } } if (event.getState() != Event.KeeperState.Expired) { return; } switch (actionType) { case EXISTS: exists(); break; case CHILDREN: children(); break; case DATA: data(); break; } }
From source file:com.dangdang.config.service.easyzk.ConfigNodeEventListener.java
License:Apache License
@Override public void eventReceived(CuratorFramework client, CuratorEvent event) throws Exception { if (LOGGER.isDebugEnabled()) { LOGGER.debug(event.toString());//from w w w . j av a 2 s.c om } final WatchedEvent watchedEvent = event.getWatchedEvent(); if (watchedEvent != null) { if (LOGGER.isDebugEnabled()) { LOGGER.debug(watchedEvent.toString()); } if (watchedEvent.getState() == KeeperState.SyncConnected) { boolean someChange = false; switch (watchedEvent.getType()) { case NodeChildrenChanged: configNode.loadNode(false); someChange = true; break; case NodeDataChanged: configNode.loadKey(watchedEvent.getPath()); someChange = true; break; default: break; } if (someChange && configNode.getConfigLocalCache() != null) { configNode.getConfigLocalCache().saveLocalCache(configNode, configNode.getNode()); } } } }
From source file:com.dangdang.config.service.zookeeper.ConfigNodeEventListener.java
License:Apache License
@Override public void eventReceived(CuratorFramework client, CuratorEvent event) throws Exception { if (LOGGER.isDebugEnabled()) { LOGGER.debug(event.toString());//from w w w . j a va 2 s .c o m } final WatchedEvent watchedEvent = event.getWatchedEvent(); if (watchedEvent != null) { LOGGER.debug("Watched event: {}" + watchedEvent); if (watchedEvent.getState() == KeeperState.SyncConnected) { boolean someChange = false; switch (watchedEvent.getType()) { case NodeChildrenChanged: configNode.loadNode(); someChange = true; break; case NodeDataChanged: configNode.reloadKey(watchedEvent.getPath()); someChange = true; break; default: break; } if (someChange && configNode.getConfigLocalCache() != null) { configNode.getConfigLocalCache().saveLocalCache(configNode, configNode.getNode()); } } } }
From source file:com.dangdang.config.service.zookeeper.ZookeeperConfigGroup.java
License:Apache License
/** * ?/* www .ja v a 2 s .c o m*/ */ private void initConfigs() { client = CuratorFrameworkFactory.newClient(configProfile.getConnectStr(), configProfile.getRetryPolicy()); client.start(); client.getCuratorListenable().addListener(new CuratorListener() { @Override public void eventReceived(CuratorFramework client, CuratorEvent event) throws Exception { LOGGER.info("Event: {}", event); final WatchedEvent watchedEvent = event.getWatchedEvent(); if (watchedEvent != null) { LOGGER.debug("Watched event: {}", watchedEvent); if (watchedEvent.getState() == Watcher.Event.KeeperState.SyncConnected) { switch (watchedEvent.getType()) { case NodeChildrenChanged: loadNode(); break; case NodeDataChanged: reloadKey(watchedEvent.getPath()); break; default: break; } } } } }); final CountDownLatch countDownLatch = new CountDownLatch(1); client.getConnectionStateListenable().addListener(new ConnectionStateListener() { @Override public void stateChanged(CuratorFramework client, ConnectionState newState) { LOGGER.info("Connection state change: {}", newState); if (newState == ConnectionState.CONNECTED) { LOGGER.debug("Loading properties for node: {}", node); loadNode(); countDownLatch.countDown(); } else if (newState == ConnectionState.RECONNECTED) { loadNode(); } } }); try { countDownLatch.await(); } catch (InterruptedException e) { LOGGER.error(e.getMessage(), e); throw new RuntimeException("Config Load error.", e); } // Update local cache if (configLocalCache != null) { configLocalCache.saveLocalCache(this, node); } }
From source file:com.datis.zookafka.client.Creator.java
@Override public void process(WatchedEvent e) { LOG.info("Processing event: " + e.toString()); if (e.getType() == Event.EventType.None) { switch (e.getState()) { case SyncConnected: System.out.println("Event SynConnected"); connected = true;//from w ww . j a v a2 s. com break; case Disconnected: System.out.println("Event Disconnected"); connected = false; break; case Expired: System.out.println("Event Expired"); expired = true; connected = false; LOG.error("Session expiration"); default: break; } } }
From source file:com.demo.master_work.Client.java
License:Apache License
public void process(WatchedEvent e) { System.out.println(e);/*from w ww . ja va2s . co m*/ if (e.getType() == Event.EventType.None) { switch (e.getState()) { case SyncConnected: connected = true; break; case Disconnected: connected = false; break; case Expired: expired = true; connected = false; System.out.println("Exiting due to session expiration"); default: break; } } }
From source file:com.dianping.lion.client.zookeeper.SessionRecoverableZookeeper.java
License:Open Source License
@Override public void process(WatchedEvent event) { if (event.getType() == Event.EventType.None && event.getState() == KeeperState.Expired) { try {/*from w w w. j av a 2s .c o m*/ reconnectToZookeeper(this.zookeeper); } catch (Exception e) { logger.warn("Reconnect to zookeeper cluster failed while session expired.", e); } } if (this.watcher != null) { this.watcher.process(event); } }
From source file:com.digitgroup.fullstackroad.j2ee.zookeeper.Client.java
License:Apache License
public void process(WatchedEvent e) { System.out.println(e);/*from ww w. java 2s.c o m*/ if (e.getType() == EventType.None) { switch (e.getState()) { case SyncConnected: connected = true; break; case Disconnected: connected = false; break; case Expired: expired = true; connected = false; System.out.println("Exiting due to session expiration"); default: break; } } }