Class CacheInvalidationPolicy
java.lang.Object
org.eclipse.persistence.descriptors.invalidation.CacheInvalidationPolicy
- All Implemented Interfaces:
Serializable
,Cloneable
- Direct Known Subclasses:
DailyCacheInvalidationPolicy
,NoExpiryCacheInvalidationPolicy
,TimeToLiveCacheInvalidationPolicy
PUBLIC:
A CacheInvalidationPolicy is used to set objects in TopLink's identity maps to be invalid
following given rules. CacheInvalidationPolicy is the abstract superclass for all
policies used for cache invalidation.
By default in EclipseLink, objects do not expire in the cache. Several different policies
are available to allow objects to expire. These can be set on the ClassDescriptor.
-
Field Summary
Modifier and TypeFieldDescriptionprotected boolean
Allows the timeToLive to be randomized to avoid bottlenecks.static final long
protected Random
Random used for randomized invalidation.protected boolean
Determines if expired object registered in the unit of work should be refreshed, default true.protected boolean
This will represent objects that do not expire. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionclone()
abstract long
getExpiryTimeInMillis
(org.eclipse.persistence.internal.identitymaps.CacheKey key) INTERNAL: Get the next time when this object will become invalidlong
getRemainingValidTime
(org.eclipse.persistence.internal.identitymaps.CacheKey key) INTERNAL: Return the remaining life of this objectvoid
initialize
(ClassDescriptor descriptor, org.eclipse.persistence.internal.sessions.AbstractSession session) INTERNAL: Allow initialization with the descriptor.boolean
isInvalidated
(org.eclipse.persistence.internal.identitymaps.CacheKey key) INTERNAL: return true if this object is expire, false otherwise.abstract boolean
isInvalidated
(org.eclipse.persistence.internal.identitymaps.CacheKey key, long currentTimeMillis) INTERNAL: return true if this object is expire, false otherwise.boolean
PUBLIC: Allows the timeToLive to be randomized to avoid bottlenecks.void
setIsInvalidationRandomized
(boolean isInvalidationRandomized) PUBLIC: Allows the timeToLive to be randomized to avoid bottlenecks.void
setShouldRefreshInvalidObjectsOnClone
(boolean shouldRefreshInvalidObjectsOnClone) PUBLIC: Set if expired object should be refreshed prior to cloning, default is true.void
setShouldUpdateReadTimeOnUpdate
(boolean shouldUpdateReadTime) PUBLIC: Set whether to update the stored time an object was read when an object is updated.boolean
PUBLIC: Return if expired object should be refreshed prior to cloning.boolean
PUBLIC: Return whether objects affected by this CacheInvalidationPolicy should have the read time on their cache keys updated when an update occurs.
-
Field Details
-
NO_EXPIRY
public static final long NO_EXPIRY- See Also:
-
shouldUpdateReadTimeOnUpdate
protected boolean shouldUpdateReadTimeOnUpdateThis will represent objects that do not expire. -
shouldRefreshInvalidObjectsOnClone
protected boolean shouldRefreshInvalidObjectsOnCloneDetermines if expired object registered in the unit of work should be refreshed, default true. -
isInvalidationRandomized
protected boolean isInvalidationRandomizedAllows the timeToLive to be randomized to avoid bottlenecks. -
random
Random used for randomized invalidation.
-
-
Constructor Details
-
CacheInvalidationPolicy
public CacheInvalidationPolicy()
-
-
Method Details
-
isInvalidationRandomized
public boolean isInvalidationRandomized()PUBLIC: Allows the timeToLive to be randomized to avoid bottlenecks. -
setIsInvalidationRandomized
public void setIsInvalidationRandomized(boolean isInvalidationRandomized) PUBLIC: Allows the timeToLive to be randomized to avoid bottlenecks. -
getExpiryTimeInMillis
public abstract long getExpiryTimeInMillis(org.eclipse.persistence.internal.identitymaps.CacheKey key) INTERNAL: Get the next time when this object will become invalid -
getRemainingValidTime
public long getRemainingValidTime(org.eclipse.persistence.internal.identitymaps.CacheKey key) INTERNAL: Return the remaining life of this object -
initialize
public void initialize(ClassDescriptor descriptor, org.eclipse.persistence.internal.sessions.AbstractSession session) INTERNAL: Allow initialization with the descriptor. -
isInvalidated
public boolean isInvalidated(org.eclipse.persistence.internal.identitymaps.CacheKey key) INTERNAL: return true if this object is expire, false otherwise. -
isInvalidated
public abstract boolean isInvalidated(org.eclipse.persistence.internal.identitymaps.CacheKey key, long currentTimeMillis) INTERNAL: return true if this object is expire, false otherwise. -
setShouldUpdateReadTimeOnUpdate
public void setShouldUpdateReadTimeOnUpdate(boolean shouldUpdateReadTime) PUBLIC: Set whether to update the stored time an object was read when an object is updated. When the read time is updated, it indicates to EclipseLink that the data in the object is up to date. This means that cache invalidation checks will occur relative to the new read time. By default, the read time will not be updated when an object is updated. Often it is possible to be confident that the object is up to date after an update because otherwise the update will fail because of the locking policies in use. -
shouldUpdateReadTimeOnUpdate
public boolean shouldUpdateReadTimeOnUpdate()PUBLIC: Return whether objects affected by this CacheInvalidationPolicy should have the read time on their cache keys updated when an update occurs. -
setShouldRefreshInvalidObjectsOnClone
public void setShouldRefreshInvalidObjectsOnClone(boolean shouldRefreshInvalidObjectsOnClone) PUBLIC: Set if expired object should be refreshed prior to cloning, default is true. Applies to Protected Entities and UnitOfWork registration. -
shouldRefreshInvalidObjectsOnClone
public boolean shouldRefreshInvalidObjectsOnClone()PUBLIC: Return if expired object should be refreshed prior to cloning. Applies to Protected Entities and UnitOfWork registration. -
clone
-