Hi,

I am using zookeeper class and zookeeper command line script (zkCli.sh) to 
create paths. The commands look like below.

bin/zkCli.sh -server Testvm1:2181,Testvm2:2181,Testvm3:2181 create /test test

Sometimes, the first request fails and second request succeeds. The failed 
request throws the error

Exception in thread "main" 
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = 
ConnectionLoss for /test
at org.apache.zookeeper.KeeperException.create(KeeperException.java:90)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:643)
at org.apache.zookeeper.ZooKeeperMain.processZKCmd(ZooKeeperMain.java:678)
at org.apache.zookeeper.ZooKeeperMain.processCmd(ZooKeeperMain.java:581)
at org.apache.zookeeper.ZooKeeperMain.run(ZooKeeperMain.java:342)
at org.apache.zookeeper.ZooKeeperMain.main(ZooKeeperMain.java:270)

Every one request out of 10 commands (approx.) like this fails with the above 
error. Please correct me if I am wrong but I have read across the mailing list 
and documentation that this happens because the 'create' command is executed 
before the connection is properly established.

If the command randomly fails, it is hard to rely up on this to create paths. 
Is there any parameter or configuration to make sure that the command never 
fails and 'create' is executed only after proper connection is established ?

Also, Shouldn't the zookeeperMain wait for 'SyncConnected' and then execute the 
command ? Should I switch to writing a java client class to reliably create 
paths and execute any zookeeper commands rather than relying on command line 
client ?

Sorry for the long mail.

Thank you,
--
Kiran Chitturi

Reply via email to