The docs; programmer guide, API, and FAQ are good places to start. Read through those first. You might also find it helpful to look at the "recipe" implementations (src/recipes) which implement common patterns including error handling.
Regards, Patrick On Fri, Jul 29, 2011 at 1:23 AM, lei liu <[email protected]> wrote: > I write Wacher class, I call zk.getData(path, watch, null) in process() > method, example below code: > > public class AppVersionMappingChildrenNodeWatcher implements Watcher { > > private ZooKeeperManager zooKeeperManager; > > protected Logger logger = LoggerFactory.getLogger(this.getClass()); > > //process biz when some child added or deleted > @Override > public void process(WatchedEvent event) { > > //open a watcher > String path = event.getPath(); > logger.info("notify path:"+path); > String value = ""; > try { > value = zk.getData(path, watcher, null); > logger.info("reMonitor for zookeeper in AppVersionMappingWatcher > success,value is:"+value); > } catch (Exception e) { > //TODO:huangdou.c: i will lost this machine in this zookeeper > call back group > logger.error("reOpen watcher failure, this machine will be lost. > please restart"); > } > } > } > > > If zk.getData(path, watcher, null) throw Exception, the watch will be not > left on the node with the given path. The watch will be not triggered by a > successful operation that sets data on the node, or deletes the node, So my > application will never be notified when the data is changed on the node, > how I can handle the Exception? > > > Thanks, > > > LiuLei >
