Class ClientCnxn


  • public class ClientCnxn
    extends java.lang.Object
    This class manages the socket i/o for the client. ClientCnxn maintains a list of available servers to connect to and "transparently" switches servers it is connected to as needed.
    • Constructor Summary

      Constructors 
      Constructor Description
      ClientCnxn​(java.lang.String chrootPath, HostProvider hostProvider, int sessionTimeout, ZooKeeper zooKeeper, ClientWatchManager watcher, org.apache.zookeeper.ClientCnxnSocket clientCnxnSocket, boolean canBeReadOnly)
      Creates a connection object.
      ClientCnxn​(java.lang.String chrootPath, HostProvider hostProvider, int sessionTimeout, ZooKeeper zooKeeper, ClientWatchManager watcher, org.apache.zookeeper.ClientCnxnSocket clientCnxnSocket, boolean canBeReadOnly, java.lang.String clusterName)  
      ClientCnxn​(java.lang.String chrootPath, HostProvider hostProvider, int sessionTimeout, ZooKeeper zooKeeper, ClientWatchManager watcher, org.apache.zookeeper.ClientCnxnSocket clientCnxnSocket, long sessionId, byte[] sessionPasswd, boolean canBeReadOnly)
      Creates a connection object.
      ClientCnxn​(java.lang.String chrootPath, HostProvider hostProvider, int sessionTimeout, ZooKeeper zooKeeper, ClientWatchManager watcher, org.apache.zookeeper.ClientCnxnSocket clientCnxnSocket, long sessionId, byte[] sessionPasswd, boolean canBeReadOnly, java.lang.String clusterName)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addAuthInfo​(java.lang.String scheme, byte[] auth)  
      void close()
      Close the connection, which includes; send session disconnect to the server, shutdown the send/event threads.
      void disconnect()
      Shutdown the send/event threads.
      protected void finishPacket​(org.apache.zookeeper.ClientCnxn.Packet p)  
      long getLastZxid()  
      long getSessionId()  
      byte[] getSessionPasswd()  
      int getSessionTimeout()  
      int getXid()  
      org.apache.zookeeper.ClientCnxn.Packet queuePacket​(org.apache.zookeeper.proto.RequestHeader h, org.apache.zookeeper.proto.ReplyHeader r, org.apache.jute.Record request, org.apache.jute.Record response, AsyncCallback cb, java.lang.String clientPath, java.lang.String serverPath, java.lang.Object ctx, ZooKeeper.WatchRegistration watchRegistration)  
      org.apache.zookeeper.ClientCnxn.Packet queuePacket​(org.apache.zookeeper.proto.RequestHeader h, org.apache.zookeeper.proto.ReplyHeader r, org.apache.jute.Record request, org.apache.jute.Record response, AsyncCallback cb, java.lang.String clientPath, java.lang.String serverPath, java.lang.Object ctx, ZooKeeper.WatchRegistration watchRegistration, WatchDeregistration watchDeregistration)  
      void saslCompleted()  
      void sendPacket​(org.apache.jute.Record request, org.apache.jute.Record response, AsyncCallback cb, int opCode)  
      void start()  
      org.apache.zookeeper.proto.ReplyHeader submitRequest​(org.apache.zookeeper.proto.RequestHeader h, org.apache.jute.Record request, org.apache.jute.Record response, ZooKeeper.WatchRegistration watchRegistration)  
      org.apache.zookeeper.proto.ReplyHeader submitRequest​(org.apache.zookeeper.proto.RequestHeader h, org.apache.jute.Record request, org.apache.jute.Record response, ZooKeeper.WatchRegistration watchRegistration, WatchDeregistration watchDeregistration)  
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • ClientCnxn

        public ClientCnxn​(java.lang.String chrootPath,
                          HostProvider hostProvider,
                          int sessionTimeout,
                          ZooKeeper zooKeeper,
                          ClientWatchManager watcher,
                          org.apache.zookeeper.ClientCnxnSocket clientCnxnSocket,
                          boolean canBeReadOnly)
                   throws java.io.IOException
        Creates a connection object. The actual network connect doesn't get established until needed. The start() instance method must be called subsequent to construction.
        Parameters:
        chrootPath - - the chroot of this client. Should be removed from this Class in ZOOKEEPER-838
        hostProvider - the list of ZooKeeper servers to connect to
        sessionTimeout - the timeout for connections.
        zooKeeper - the zookeeper object that this connection is related to.
        watcher - watcher for this connection
        clientCnxnSocket - the socket implementation used (e.g. NIO/Netty)
        canBeReadOnly - whether the connection is allowed to go to read-only mode in case of partitioning
        Throws:
        java.io.IOException
      • ClientCnxn

        public ClientCnxn​(java.lang.String chrootPath,
                          HostProvider hostProvider,
                          int sessionTimeout,
                          ZooKeeper zooKeeper,
                          ClientWatchManager watcher,
                          org.apache.zookeeper.ClientCnxnSocket clientCnxnSocket,
                          boolean canBeReadOnly,
                          java.lang.String clusterName)
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • ClientCnxn

        public ClientCnxn​(java.lang.String chrootPath,
                          HostProvider hostProvider,
                          int sessionTimeout,
                          ZooKeeper zooKeeper,
                          ClientWatchManager watcher,
                          org.apache.zookeeper.ClientCnxnSocket clientCnxnSocket,
                          long sessionId,
                          byte[] sessionPasswd,
                          boolean canBeReadOnly)
        Creates a connection object. The actual network connect doesn't get established until needed. The start() instance method must be called subsequent to construction.
        Parameters:
        chrootPath - - the chroot of this client. Should be removed from this Class in ZOOKEEPER-838
        hostProvider - the list of ZooKeeper servers to connect to
        sessionTimeout - the timeout for connections.
        zooKeeper - the zookeeper object that this connection is related to.
        watcher - watcher for this connection
        clientCnxnSocket - the socket implementation used (e.g. NIO/Netty)
        sessionId - session id if re-establishing session
        sessionPasswd - session passwd if re-establishing session
        canBeReadOnly - whether the connection is allowed to go to read-only mode in case of partitioning
        Throws:
        java.io.IOException
      • ClientCnxn

        public ClientCnxn​(java.lang.String chrootPath,
                          HostProvider hostProvider,
                          int sessionTimeout,
                          ZooKeeper zooKeeper,
                          ClientWatchManager watcher,
                          org.apache.zookeeper.ClientCnxnSocket clientCnxnSocket,
                          long sessionId,
                          byte[] sessionPasswd,
                          boolean canBeReadOnly,
                          java.lang.String clusterName)
    • Method Detail

      • getSessionId

        public long getSessionId()
      • getSessionPasswd

        public byte[] getSessionPasswd()
      • getSessionTimeout

        public int getSessionTimeout()
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • start

        public void start()
      • finishPacket

        protected void finishPacket​(org.apache.zookeeper.ClientCnxn.Packet p)
      • getLastZxid

        public long getLastZxid()
      • disconnect

        public void disconnect()
        Shutdown the send/event threads. This method should not be called directly - rather it should be called as part of close operation. This method is primarily here to allow the tests to verify disconnection behavior.
      • close

        public void close()
                   throws java.io.IOException
        Close the connection, which includes; send session disconnect to the server, shutdown the send/event threads.
        Throws:
        java.io.IOException
      • getXid

        public int getXid()
      • submitRequest

        public org.apache.zookeeper.proto.ReplyHeader submitRequest​(org.apache.zookeeper.proto.RequestHeader h,
                                                                    org.apache.jute.Record request,
                                                                    org.apache.jute.Record response,
                                                                    ZooKeeper.WatchRegistration watchRegistration)
                                                             throws java.lang.InterruptedException
        Throws:
        java.lang.InterruptedException
      • submitRequest

        public org.apache.zookeeper.proto.ReplyHeader submitRequest​(org.apache.zookeeper.proto.RequestHeader h,
                                                                    org.apache.jute.Record request,
                                                                    org.apache.jute.Record response,
                                                                    ZooKeeper.WatchRegistration watchRegistration,
                                                                    WatchDeregistration watchDeregistration)
                                                             throws java.lang.InterruptedException
        Throws:
        java.lang.InterruptedException
      • saslCompleted

        public void saslCompleted()
      • sendPacket

        public void sendPacket​(org.apache.jute.Record request,
                               org.apache.jute.Record response,
                               AsyncCallback cb,
                               int opCode)
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • queuePacket

        public org.apache.zookeeper.ClientCnxn.Packet queuePacket​(org.apache.zookeeper.proto.RequestHeader h,
                                                                  org.apache.zookeeper.proto.ReplyHeader r,
                                                                  org.apache.jute.Record request,
                                                                  org.apache.jute.Record response,
                                                                  AsyncCallback cb,
                                                                  java.lang.String clientPath,
                                                                  java.lang.String serverPath,
                                                                  java.lang.Object ctx,
                                                                  ZooKeeper.WatchRegistration watchRegistration)
      • queuePacket

        public org.apache.zookeeper.ClientCnxn.Packet queuePacket​(org.apache.zookeeper.proto.RequestHeader h,
                                                                  org.apache.zookeeper.proto.ReplyHeader r,
                                                                  org.apache.jute.Record request,
                                                                  org.apache.jute.Record response,
                                                                  AsyncCallback cb,
                                                                  java.lang.String clientPath,
                                                                  java.lang.String serverPath,
                                                                  java.lang.Object ctx,
                                                                  ZooKeeper.WatchRegistration watchRegistration,
                                                                  WatchDeregistration watchDeregistration)
      • addAuthInfo

        public void addAuthInfo​(java.lang.String scheme,
                                byte[] auth)