Package org.apache.zookeeper
Class ClientCnxn
- java.lang.Object
-
- org.apache.zookeeper.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.
-
-
Field Summary
Fields Modifier and Type Field Description protected int
xid
ZooKeeperSaslClient
zooKeeperSaslClient
-
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()
-
-
-
Field Detail
-
zooKeeperSaslClient
public ZooKeeperSaslClient zooKeeperSaslClient
-
xid
protected int xid
-
-
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-838hostProvider
- the list of ZooKeeper servers to connect tosessionTimeout
- the timeout for connections.zooKeeper
- the zookeeper object that this connection is related to.watcher
- watcher for this connectionclientCnxnSocket
- 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-838hostProvider
- the list of ZooKeeper servers to connect tosessionTimeout
- the timeout for connections.zooKeeper
- the zookeeper object that this connection is related to.watcher
- watcher for this connectionclientCnxnSocket
- the socket implementation used (e.g. NIO/Netty)sessionId
- session id if re-establishing sessionsessionPasswd
- session passwd if re-establishing sessioncanBeReadOnly
- 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 classjava.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)
-
-