# Class QuorumZooKeeperServer

java.lang.Object
org.apache.zookeeper.server.ZooKeeperServer
org.apache.zookeeper.server.quorum.QuorumZooKeeperServer

All Implemented Interfaces:
  `ServerStats.Provider, SessionTracker.SessionExpirer`

Direct Known Subclasses:
  `LeaderZooKeeperServer, LearnerZooKeeperServer`

public abstract class QuorumZooKeeperServer extends ZooKeeperServer
Abstract base class for all ZooKeeperServers that participate in a quorum.

## Nested Class Summary

### Nested classes/interfaces inherited from class ZooKeeperServer

`ZooKeeperServer.MissingSessionException, ZooKeeperServer.State`

## Field Summary

Fields
Modifier and Type
Field
Description
`final QuorumPeer`
`self`
`protected UpgradeableSessionTracker`
`upgradeableSessionTracker`

### Fields inherited from class ZooKeeperServer

`ALLOW_SASL_FAILED_CLIENTS, CLOSE_SESSION_TXN_ENABLED, DEFAULT_STARTING_BUFFER_SIZE, DEFAULT_THROTTLED_OP_WAIT_TIME, DEFAULT_TICK_TIME, ENABLE_EAGER_ACL_CHECK, ENFORCE_QUOTA, enforceQuota, firstProcessor, GET_CHILDREN_RESPONSE_CACHE_SIZE, GET_DATA_RESPONSE_CACHE_SIZE, GLOBAL_OUTSTANDING_LIMIT, initialConfig, INT_BUFFER_STARTING_SIZE_BYTES, intBufferStartingSizeBytes, jmxDataTreeBean, jmxServerBean, jvmPauseMonitor, listenBacklog, LOG, maxSessionTimeout, minSessionTimeout, ok, reconfigEnabled, SASL_SUPER_USER, secureServerCnxnFactory, serverCnxnFactory, sessionTracker, SKIP_ACL, SNAP_COUNT, state, throttledOpWaitTime, tickTime, ZOOKEEPER_DIGEST_ENABLED, ZOOKEEPER_SERIALIZE_LAST_PROCESSED_ZXID_ENABLED`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`QuorumZooKeeperServer(FileTxnSnapLog logFactory, int tickTime, int minSessionTimeout, int maxSessionTimeout, int listenBacklog, ZKDatabase zkDb, QuorumPeer self)`

## Method Summary

Modifier and Type
Method
Description
`Request`
`checkUpgradeSession(Request request)`
`void`
`dumpConf(PrintWriter pwriter)`
`void`
`dumpMonitorValues(BiConsumer<String,Object> response)`
Hook into admin server, useful to expose additional data that do not represent metrics.
`protected void`
`registerMetrics()`
`protected void`
`setLocalSessionFlag(Request si)`
If the underlying Zookeeper server support local session, this method will set a isLocalSession to true if a request is associated with a local session.
`protected void`
`setState(ZooKeeperServer.State state)`
Sets the state of ZooKeeper server.
`protected void`
`startSessionTracker()`
`protected void`
`unregisterMetrics()`
`void`
`upgrade(long sessionId)`
Implements the SessionUpgrader interface,

### Methods inherited from class ZooKeeperServer

`authWriteRequest, checkACL, checkPasswd, checkQuota, checkRequestSizeWhenReceivingMessage, closeSession, closeSession, connThrottle, createRequestThrottler, createSessionTracker, decInProcess, dumpEphemerals, enqueueRequest, expire, expire, finishSessionInit, getClientPort, getClientPortListenBacklog, getConf, getConnectionDropChance, getDataDirSize, getEphemerals, getGetChildrenResponseCache, getGlobalOutstandingLimit, getInflight, getInitialConfig, getInProcess, getLargeRequestBytes, getLargeRequestMaxBytes, getLargeRequestThreshold, getLastProcessedZxid, getLogDirSize, getMaxClientCnxnsPerHost, getMaxSessionTimeout, getMinSessionTimeout, getNumAliveConnections, getOutstandingHandshakeNum, getOutstandingRequests, getReadResponseCache, getRequestPathMetricsCollector, getSecureClientPort, getSecureServerCnxnFactory, getServerCnxnFactory, getServerId, getSessionExpiryMap, getSessionTracker, getSnapCount, getSnapSizeInBytes, getState, getThrottledOpWaitTime, getTickTime, getTxnLogElapsedSyncTime, getTxnLogFactory, getZKDatabase, getZkShutdownHandler, getZooKeeperServerListener, getZxid, incInProcess, isCloseSessionTxnEnabled, isDigestEnabled, isEnableEagerACLCheck, isReconfigEnabled, isResponseCachingEnabled, isRunning, isSerializeLastProcessedZxidEnabled, killSession, loadData, processConnectRequest, processPacket, processTxn, registerJMX, reopenSession, requestFinished, restoreFromSnapshot, revalidateSession, serverStats, setClientPortListenBacklog, setCloseSessionTxnEnabled, setCreateSessionTrackerServerId, setDigestEnabled, setEnableEagerACLCheck, setLargeRequestMaxBytes, setLargeRequestThreshold, setMaxSessionTimeout, setMinSessionTimeout, setOwner, setResponseCachingEnabled, setSecureServerCnxnFactory, setSerializeLastProcessedZxidEnabled, setServerCnxnFactory, setThrottledOpWaitTime, setTickTime, setTxnLogFactory, setupRequestProcessors, setZKDatabase, setZxid, shouldForceWriteInitialSnapshotAfterLeaderElection, shouldThrottle, shutdown, shutdown, shutdownComponents, startdata, startJvmPauseMonitor, startRequestThrottler, startup, submitRequest, submitRequestNow, takeSnapshot, takeSnapshot, takeSnapshot, truncateLog, unregisterJMX, validateSession`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### self

public final QuorumPeer self

### upgradeableSessionTracker

protected UpgradeableSessionTracker upgradeableSessionTracker

## Constructor Details

### QuorumZooKeeperServer

protected QuorumZooKeeperServer(FileTxnSnapLog logFactory, int tickTime, int minSessionTimeout, int maxSessionTimeout, int listenBacklog, ZKDatabase zkDb, QuorumPeer self)

## Method Details

### startSessionTracker

protected void startSessionTracker()

Overrides:
  `startSessionTracker` in class `ZooKeeperServer`

### checkUpgradeSession

public Request checkUpgradeSession(Request request) throws IOException, KeeperException

Throws:
  `IOException`
  `KeeperException`

### upgrade

public void upgrade(long sessionId)
Implements the SessionUpgrader interface,

Parameters:
  `sessionId` -

### setLocalSessionFlag

protected void setLocalSessionFlag(Request si)
Description copied from class: `ZooKeeperServer`
If the underlying Zookeeper server support local session, this method will set a isLocalSession to true if a request is associated with a local session.

Overrides:
  `setLocalSessionFlag` in class `ZooKeeperServer`
Parameters:
  `si` -

### dumpConf

public void dumpConf(PrintWriter pwriter)

Overrides:
  `dumpConf` in class `ZooKeeperServer`

### setState

protected void setState(ZooKeeperServer.State state)
Description copied from class: `ZooKeeperServer`
Sets the state of ZooKeeper server. After changing the state, it notifies the server state change to a registered shutdown handler, if any.

The following are the server state transitions:

- During startup the server will be in the INITIAL state.
- After successfully starting, the server sets the state to RUNNING.
- The server transitions to the ERROR state if it hits an internal error. `ZooKeeperServerListenerImpl` notifies any critical resource error events, e.g., SyncRequestProcessor not being able to write a txn to disk.
- During shutdown the server sets the state to SHUTDOWN, which corresponds to the server not running.

During maintenance (e.g. restore) the server sets the state to MAINTENANCE

Overrides:
  `setState` in class `ZooKeeperServer`
Parameters:
  `state` - new server state.

- ### registerMetrics

  protected void registerMetrics()
  Overrides:
    `registerMetrics` in class `ZooKeeperServer`

- ### unregisterMetrics

  protected void unregisterMetrics()
  Overrides:
    `unregisterMetrics` in class `ZooKeeperServer`

- ### dumpMonitorValues

  public void dumpMonitorValues(BiConsumer<String,Object> response)
  Description copied from class: `ZooKeeperServer`
  Hook into admin server, useful to expose additional data that do not represent metrics.
  Overrides:
    `dumpMonitorValues` in class `ZooKeeperServer`
  Parameters:
    `response` - a sink which collects the data.