Hi All This may sound weird but I want to know if there is something inherent that would preclude this from working. I want to have a thrift based service which exposes some API to read/write to certain znodes. I want ZK to run within the same process. So I will start the ZK process from within my main using QuorumPeerMain.main(). Now the implementation of my API would instantiate a ZooKeeper object and try reading/writing from specific znodes as the case may be. I tried running this and as soon as I instantiate my ZooKeeper object I get some really weird exceptions. What is wrong in this approach? Here is a snapshot of the stack trace:
2010-04-20 13:14:31,551 - INFO [pool-1-thread-1:environm...@97] - Client environment:zookeeper.version=3.1.1-755636, built on 03/18/2009 16:52 GMT 2010-04-20 13:14:31,552 - INFO [pool-1-thread-1:environm...@97] - Client environment:host.name=a.b.c.com 2010-04-20 13:14:31,552 - INFO [pool-1-thread-1:environm...@97] - Client environment:java.version=1.7.0-ea 2010-04-20 13:14:31,552 - INFO [pool-1-thread-1:environm...@97] - Client environment:java.vendor=Sun Microsystems Inc. 2010-04-20 13:14:31,553 - INFO [pool-1-thread-1:environm...@97] - Client environment:java.home=/usr/local/jdk1.7-drop/jre 2010-04-20 13:14:31,553 - INFO [pool-1-thread-1:environm...@97] - Client environment:java.class.path=config/:lib/zookeeper-3.1.1.jar:lib/log4j-1.2.15.jar:lib/antlr-2.7.7.jar:li b/antlr-3.0.1.jar:lib/atlas.jar:lib/commons-cli-1.1.jar:lib/DiscoveryService.jar:lib/fb303.jar:lib/if-java.jar:lib/jline-0.9.94.jar:lib/stringtemplate-3.0.jar:lib/thrift.jar:lib /atlasimpl.jar:lib/slf4j-api-1.5.8.jar:lib/slf4j-log4j12-1.5.8.jar 2010-04-20 13:14:31,553 - INFO [pool-1-thread-1:environm...@97] - Client environment:java.library.path=/usr/local/jdk1.7-drop/jre/lib/amd64/server:/usr/local/jdk1.7-drop/jre/li b/amd64:/usr/local/jdk1.7-drop/jre/../lib/amd64:/usr/java/packages/lib/amd64:/lib:/usr/lib 2010-04-20 13:14:31,554 - INFO [pool-1-thread-1:environm...@97] - Client environment:java.io.tmpdir=/tmp 2010-04-20 13:14:31,554 - INFO [pool-1-thread-1:environm...@97] - Client environment:java.compiler=<NA> 2010-04-20 13:14:31,554 - INFO [pool-1-thread-1:environm...@97] - Client environment:os.name=Linux 2010-04-20 13:14:31,555 - INFO [pool-1-thread-1:environm...@97] - Client environment:os.arch=amd64 2010-04-20 13:14:31,555 - INFO [pool-1-thread-1:environm...@97] - Client environment:os.version=2.6.12-1.1398_FC4smp 2010-04-20 13:14:31,555 - INFO [pool-1-thread-1:environm...@97] - Client environment:user.name=root 2010-04-20 13:14:31,555 - INFO [pool-1-thread-1:environm...@97] - Client environment:user.home=/root 2010-04-20 13:14:31,556 - INFO [pool-1-thread-1:environm...@97] - Client environment:user.dir=/var/myservice 2010-04-20 13:14:31,557 - INFO [pool-1-thread-1:zookee...@341] - Initiating client connection, host=a.b.c.com sessionTimeout=10000 watcher=a.b.c.mycl...@716c9867 2010-04-20 13:14:31,558 - INFO [pool-1-thread-1:clientc...@91] - zookeeper.disableAutoWatchReset is false 2010-04-20 13:14:31,566 - INFO [pool-1-thread-1-SendThread:clientcnxn$sendthr...@800] - Attempting connection to server a.b.c.com/10.18.39.211:2181 2010-04-20 13:14:31,567 - WARN [pool-1-thread-1-SendThread:clientcnxn$sendthr...@898] - Exception closing session 0x0 to sun.nio.ch.selectionkeyi...@7b2884e0 java.net.ConnectException: Connection refused at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:592) at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:864) 2010-04-20 13:14:31,568 - WARN [pool-1-thread-1-SendThread:clientcnxn$sendthr...@932] - Ignoring exception during shutdown input java.nio.channels.ClosedChannelException at sun.nio.ch.SocketChannelImpl.shutdownInput(SocketChannelImpl.java:656) at sun.nio.ch.SocketAdaptor.shutdownInput(SocketAdaptor.java:378) at org.apache.zookeeper.ClientCnxn$SendThread.cleanup(ClientCnxn.java:930) at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:901)