public class StandardConnectionHandlingPolicy extends Object implements ConnectionHandlingPolicy
ConnectionHandlingPolicy.CheckTimeoutsResult
Constructor and Description |
---|
StandardConnectionHandlingPolicy() |
StandardConnectionHandlingPolicy(int expirationPercent) |
Modifier and Type | Method and Description |
---|---|
<T> T |
callWithRetry(CuratorZookeeperClient client,
Callable<T> proc)
Called by
RetryLoop.callWithRetry(CuratorZookeeperClient, Callable) to do the work
of retrying |
ConnectionHandlingPolicy.CheckTimeoutsResult |
checkTimeouts(Callable<String> hasNewConnectionString,
long connectionStartMs,
int sessionTimeoutMs,
int connectionTimeoutMs)
Check timeouts.
|
int |
getSimulatedSessionExpirationPercent()
Prior to 3.0.0, Curator did not try to manage session expiration
other than the functionality provided by ZooKeeper itself.
|
public StandardConnectionHandlingPolicy()
public StandardConnectionHandlingPolicy(int expirationPercent)
public int getSimulatedSessionExpirationPercent()
ConnectionHandlingPolicy
Prior to 3.0.0, Curator did not try to manage session expiration other than the functionality provided by ZooKeeper itself. Starting with 3.0.0, Curator has the option of attempting to monitor session expiration above what is provided by ZooKeeper. The percentage returned by this method determines how and if Curator will check for session expiration.
If this method returns 0, Curator does not do any additional checking for session expiration.
If a positive number is returned, Curator will check for session expiration as follows: when ZooKeeper sends a Disconnect event, Curator will start a timer. If re-connection is not achieved before the elapsed time exceeds the negotiated session time multiplied by the session expiration percent, Curator will simulate a session expiration. Due to timing/network issues, it is not possible for a client to match the server's session timeout with complete accuracy. Thus, the need for a session expiration percentage.
getSimulatedSessionExpirationPercent
in interface ConnectionHandlingPolicy
public <T> T callWithRetry(CuratorZookeeperClient client, Callable<T> proc) throws Exception
ConnectionHandlingPolicy
RetryLoop.callWithRetry(CuratorZookeeperClient, Callable)
to do the work
of retryingcallWithRetry
in interface ConnectionHandlingPolicy
client
- clientproc
- the procedure to retryException
- errorspublic ConnectionHandlingPolicy.CheckTimeoutsResult checkTimeouts(Callable<String> hasNewConnectionString, long connectionStartMs, int sessionTimeoutMs, int connectionTimeoutMs) throws Exception
ConnectionHandlingPolicy
checkTimeouts
in interface ConnectionHandlingPolicy
hasNewConnectionString
- proc to call to check if there is a new connection string. Important: the internal state is cleared after
this is called so you MUST handle the new connection string if non null is returnedconnectionStartMs
- the epoch/ms time that the connection was first initiatedsessionTimeoutMs
- the configured/negotiated session timeout in millisecondsconnectionTimeoutMs
- the configured connection timeout in millisecondsException
- errorsCopyright © 2011–2015 The Apache Software Foundation. All rights reserved.