UpgradeableSessionTracker (Apache ZooKeeper - Server 3.7.0 API)
Date: 2021-03-17

org.apache.zookeeper.server.quorum

## Class UpgradeableSessionTracker

- java.lang.Object
- - org.apache.zookeeper.server.quorum.UpgradeableSessionTracker

- All Implemented Interfaces:
    SessionTracker
  Direct Known Subclasses:
    LeaderSessionTracker, LearnerSessionTracker

      public abstract class UpgradeableSessionTracker
      extends Object
      implements SessionTracker

  A session tracker that supports upgradeable local sessions.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.zookeeper.server.SessionTracker

      `SessionTracker.Session, SessionTracker.SessionExpirer`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `localSessionsEnabled`
    `protected LocalSessionTracker` | `localSessionTracker`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `UpgradeableSessionTracker()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `checkGlobalSession(long sessionId, Object owner)` Strictly check that a given session is a global session or not
    `void` | `createLocalSessionTracker(SessionTracker.SessionExpirer expirer, int tickTime, long id, ZooKeeperServerListener listener)`
    `void` | `finishedUpgrading(long sessionId)`
    `long` | `getLocalSessionCount()` If this session tracker supports local sessions, return how many.
    `abstract boolean` | `isGlobalSession(long sessionId)`
    `boolean` | `isLocalSession(long sessionId)`
    `boolean` | `isLocalSessionsEnabled()`
    `boolean` | `isTrackingSession(long sessionId)`
    `boolean` | `isUpgradingSession(long sessionId)`
    `protected void` | `removeLocalSession(long sessionId)`
    `void` | `start()`
    `int` | `upgradeSession(long sessionId)` Upgrades the session to a global session.

    - ### Methods inherited from class java.lang.Object

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

    - ### Methods inherited from interface org.apache.zookeeper.server.SessionTracker

      `checkSession, commitSession, createSession, dumpSessions, getSessionExpiryMap, removeSession, setOwner, setSessionClosing, shutdown, touchSession, trackSession`

- - ### Field Detail

    - #### localSessionTracker

          protected LocalSessionTracker localSessionTracker

    - #### localSessionsEnabled

          protected boolean localSessionsEnabled

  - ### Constructor Detail

    - #### UpgradeableSessionTracker

          public UpgradeableSessionTracker()

  - ### Method Detail

    - #### start

          public void start()

    - #### createLocalSessionTracker

          public void createLocalSessionTracker(SessionTracker.SessionExpirer expirer,
                                                int tickTime,
                                                long id,
                                                ZooKeeperServerListener listener)

    - #### isTrackingSession

          public boolean isTrackingSession(long sessionId)

      Specified by:
        `isTrackingSession` in interface `SessionTracker`
      Returns:
        whether or not the SessionTracker is aware of this session

    - #### isLocalSession

          public boolean isLocalSession(long sessionId)

    - #### isLocalSessionsEnabled

          public boolean isLocalSessionsEnabled()

      Specified by:
        `isLocalSessionsEnabled` in interface `SessionTracker`

    - #### isUpgradingSession

          public boolean isUpgradingSession(long sessionId)

    - #### finishedUpgrading

          public void finishedUpgrading(long sessionId)

    - #### isGlobalSession

          public abstract boolean isGlobalSession(long sessionId)

    - #### upgradeSession

          public int upgradeSession(long sessionId)

      Upgrades the session to a global session. This simply removes the session from the local tracker and marks it as global. It is up to the caller to actually queue up a transaction for the session.
      Parameters:
        `sessionId` -
      Returns:
        session timeout (-1 if not a local session)

    - #### removeLocalSession

          protected void removeLocalSession(long sessionId)

    - #### checkGlobalSession

          public void checkGlobalSession(long sessionId,
                                         Object owner)
                                  throws KeeperException.SessionExpiredException,
                                         KeeperException.SessionMovedException

      Description copied from interface: `SessionTracker`
      Strictly check that a given session is a global session or not
      Specified by:
        `checkGlobalSession` in interface `SessionTracker`
      Throws:
        `KeeperException.SessionExpiredException`
        `KeeperException.SessionMovedException`

    - #### getLocalSessionCount

          public long getLocalSessionCount()

      Description copied from interface: `SessionTracker`
      If this session tracker supports local sessions, return how many. otherwise returns 0;
      Specified by:
        `getLocalSessionCount` in interface `SessionTracker`

Copyright © 2008–2021 The Apache Software Foundation. All rights reserved.