Package org.apache.zookeeper.server
Interface SessionTracker
- All Known Implementing Classes:
LeaderSessionTracker
,LearnerSessionTracker
,LocalSessionTracker
,SessionTrackerImpl
,UpgradeableSessionTracker
public interface SessionTracker
This is the basic interface that ZooKeeperServer uses to track sessions. The
standalone and leader ZooKeeperServer use the same SessionTracker. The
FollowerZooKeeperServer uses a SessionTracker which is basically a simple
shell to track information to be forwarded to the leader.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interface
static interface
-
Method Summary
Modifier and TypeMethodDescriptionvoid
checkGlobalSession
(long sessionId, Object owner) Strictly check that a given session is a global session or notvoid
checkSession
(long sessionId, Object owner) Checks whether the SessionTracker is aware of this session, the session is still active, and the owner matches.boolean
commitSession
(long id, int to) Add the session to the local session map or global one in zkDB.long
createSession
(int sessionTimeout) void
dumpSessions
(PrintWriter pwriter) Text dump of session information, suitable for debugging.long
If this session tracker supports local sessions, return how many.Returns a mapping of time to session IDs that expire at that time.Get a set of global session IDsboolean
boolean
isTrackingSession
(long sessionId) Get a set of local session IDsvoid
removeSession
(long sessionId) void
void
setSessionClosing
(long sessionId) Mark that the session is in the process of closing.void
shutdown()
boolean
touchSession
(long sessionId, int sessionTimeout) boolean
trackSession
(long id, int to) Track the session expire, not add to ZkDb.
-
Method Details
-
createSession
long createSession(int sessionTimeout) -
trackSession
boolean trackSession(long id, int to) Track the session expire, not add to ZkDb.- Parameters:
id
- sessionIdto
- sessionTimeout- Returns:
- whether the session was newly tracked (if false, already tracked)
-
commitSession
boolean commitSession(long id, int to) Add the session to the local session map or global one in zkDB.- Parameters:
id
- sessionIdto
- sessionTimeout- Returns:
- whether the session was newly added (if false, already existed)
-
touchSession
boolean touchSession(long sessionId, int sessionTimeout) - Parameters:
sessionId
-sessionTimeout
-- Returns:
- false if session is no longer active
-
setSessionClosing
void setSessionClosing(long sessionId) Mark that the session is in the process of closing.- Parameters:
sessionId
-
-
shutdown
void shutdown() -
removeSession
void removeSession(long sessionId) - Parameters:
sessionId
-
-
isTrackingSession
boolean isTrackingSession(long sessionId) - Parameters:
sessionId
-- Returns:
- whether or not the SessionTracker is aware of this session
-
checkSession
void checkSession(long sessionId, Object owner) throws KeeperException.SessionExpiredException, KeeperException.SessionMovedException, KeeperException.UnknownSessionException Checks whether the SessionTracker is aware of this session, the session is still active, and the owner matches. If the owner wasn't previously set, this sets the owner of the session. UnknownSessionException should never been thrown to the client. It is only used internally to deal with possible local session from other machine- Parameters:
sessionId
-owner
-- Throws:
KeeperException.SessionExpiredException
KeeperException.SessionMovedException
KeeperException.UnknownSessionException
-
checkGlobalSession
void checkGlobalSession(long sessionId, Object owner) throws KeeperException.SessionExpiredException, KeeperException.SessionMovedException Strictly check that a given session is a global session or not- Parameters:
sessionId
-owner
-- Throws:
KeeperException.SessionExpiredException
KeeperException.SessionMovedException
-
setOwner
-
dumpSessions
Text dump of session information, suitable for debugging.- Parameters:
pwriter
- the output writer
-
getSessionExpiryMap
Returns a mapping of time to session IDs that expire at that time. -
getLocalSessionCount
long getLocalSessionCount()If this session tracker supports local sessions, return how many. otherwise returns 0; -
isLocalSessionsEnabled
boolean isLocalSessionsEnabled() -
globalSessions
Get a set of global session IDs -
localSessions
Get a set of local session IDs
-