Michi:
By "client log" I assume you mean my product's log. I'll have to add some
additional logging to indicate when it thinks it is connected -- or not.
An excellent suggestion! Will work on that in the morning.
(It generally does connect because most/all of the configuration data I
put in ZooKeeper is there. (I say "most/all" because I haven't verified
every single config attribute.)
Thanks!
Chris
From: Michi Mutsuzaki <michi@cs.stanford.edu>
To: "user@zookeeper.apache.org" <user@zookeeper.apache.org>
Date: 01/15/2015 09:21 PM
Subject: Re: ConnectionLossException
Sent by: mutsuzaki@gmail.com
Hi Chris,
>From your code snippet, It is possible that the client didn't get
connected to ZooKeeper at all. Could you paste the entire client log?
Do you see any log message that indicates that the client got
connected to ZooKeeper?
On Thu, Jan 15, 2015 at 6:04 PM, Chris Barlock <barlock@us.ibm.com> wrote:
> We are currently using ZK 3.3.4, which is included in the version of
Kafka
> we are using. I'm seeing a number of exceptions like:
>
> org.apache.zookeeper.KeeperException$ConnectionLossException:
> KeeperErrorCode = ConnectionLoss for /com
> at
> org.apache.zookeeper.KeeperException.create(KeeperException.java:90)
> at
> org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
> at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:815)
> at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:843)
> at
>
com.ibm.tivoli.ccm.config.rest.ConfigClient.setValueAtNode(ConfigClient.java:630)
>
> My method setValueAtNode includes a call to this method before I make
any
> zk (ZooKeeper) calls:
>
> private void connectZooKeeper() {
> final String methodName = "connectZooKeeper";
> trace.entry(CLASS_NAME, methodName);
>
> if (zk == null || zk.getState() != States.CONNECTED) {
> if (zk != null) {
> close();
> }
> try {
> zk = new ZooKeeper(connectString, sessionTimeout, this);
> int connectAttempts = 0;
> while (zk.getState() != States.CONNECTED &&
> connectAttempts < MAX_ZK_CONNECT_ATTEMPTS) {
> try {
> Thread.sleep(ZK_CONNECT_WAIT);
> } catch (InterruptedException e) {
> // Ignore
> }
> connectAttempts++;
> }
> } catch (IOException e) {
> trace.exception(CLASS_NAME, methodName, e);
> }
> }
>
> trace.exit(CLASS_NAME, methodName);
> }
>
> I'm totally guessing that the connection is timing out between the time
> this method is called and when I make the following zk method calls. Is
> there a best practise for ensuring one is connected to ZooKeeper? My
> session timeout is 3000 ms.
>
> Chris
|