Class UserSessionInfinispanChangelogBasedTransaction<K,V extends SessionEntity>
java.lang.Object
org.keycloak.models.sessions.infinispan.changes.InfinispanChangelogBasedTransaction<K,V>
org.keycloak.models.sessions.infinispan.changes.UserSessionInfinispanChangelogBasedTransaction<K,V>
- All Implemented Interfaces:
SessionsChangelogBasedTransaction<K,,V> NonBlockingTransaction
public class UserSessionInfinispanChangelogBasedTransaction<K,V extends SessionEntity>
extends InfinispanChangelogBasedTransaction<K,V>
User session transaction implementation that optimizes Infinispan cache expiration settings.
This class overrides the parent's timeout computation to disable max-idle tracking, which is expensive for Infinispan to maintain. Instead, the lifespan is adjusted to be the minimum of the original lifespan and max-idle values, ensuring sessions still expire at the correct time without the overhead of idle time tracking.
-
Field Summary
Fields inherited from class org.keycloak.models.sessions.infinispan.changes.InfinispanChangelogBasedTransaction
cacheHolder, kcSession, logger, updates -
Constructor Summary
ConstructorsConstructorDescriptionUserSessionInfinispanChangelogBasedTransaction(KeycloakSession kcSession, CacheHolder<K, V> cacheHolder) -
Method Summary
Modifier and TypeMethodDescriptionprotected longcomputeLifespan(long maxIdle, long lifespan) protected longcomputeMaxIdle(long maxIdle, long lifespan) Methods inherited from class org.keycloak.models.sessions.infinispan.changes.InfinispanChangelogBasedTransaction
addTask, addTask, asyncCommit, asyncRollback, generateKey, get, getCache, importSession, importSessionsConcurrently, reloadEntityInCurrentTransaction, restartEntityMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.keycloak.models.sessions.infinispan.transaction.NonBlockingTransaction
lockDatabaseEntities, supportsLockingDatabaseEntities
-
Constructor Details
-
UserSessionInfinispanChangelogBasedTransaction
public UserSessionInfinispanChangelogBasedTransaction(KeycloakSession kcSession, CacheHolder<K, V> cacheHolder)
-
-
Method Details
-
computeLifespan
protected long computeLifespan(long maxIdle, long lifespan) - Overrides:
computeLifespanin classInfinispanChangelogBasedTransaction<K,V extends SessionEntity>
-
computeMaxIdle
protected long computeMaxIdle(long maxIdle, long lifespan) - Overrides:
computeMaxIdlein classInfinispanChangelogBasedTransaction<K,V extends SessionEntity>
-