org.hibernate.cache

Class NonstrictReadWriteCache

Implemented Interfaces:
CacheConcurrencyStrategy

public class NonstrictReadWriteCache
extends java.lang.Object
implements CacheConcurrencyStrategy

Caches data that is sometimes updated without ever locking the cache. If concurrent access to an item is possible, this concurrency strategy makes no guarantee that the item returned from the cache is the latest version available in the database. Configure your cache timeout accordingly! This is an "asynchronous" concurrency strategy.
Author:
Gavin King
See Also:
for a much stricter algorithm

Constructor Summary

NonstrictReadWriteCache()

Method Summary

boolean
afterInsert(Object key, Object value, Object version)
Do nothing.
boolean
afterUpdate(Object key, Object value, Object version, SoftLock lock)
Invalidate the item (again, for safety).
void
clear()
void
destroy()
void
evict(Object key)
Invalidate the item
Object
get(Object key, long txTimestamp)
Get the most recent version, if available.
Cache
getCache()
String
getRegionName()
boolean
insert(Object key, Object value, Object currentVersion)
Invalidate the item
SoftLock
lock(Object key, Object version)
Do nothing.
boolean
put(Object key, Object value, long txTimestamp, Object version, Comparator versionComparator, boolean minimalPut)
Add an item to the cache.
void
release(Object key, SoftLock lock)
Invalidate the item (again, for safety).
void
remove(Object key)
void
setCache(Cache cache)
String
toString()
boolean
update(Object key, Object value, Object currentVersion, Object previousVersion)
Do nothing.

Constructor Details

NonstrictReadWriteCache

public NonstrictReadWriteCache()

Method Details

afterInsert

public boolean afterInsert(Object key,
                           Object value,
                           Object version)
            throws CacheException
Do nothing.
Specified by:
afterInsert in interface CacheConcurrencyStrategy

afterUpdate

public boolean afterUpdate(Object key,
                           Object value,
                           Object version,
                           SoftLock lock)
            throws CacheException
Invalidate the item (again, for safety).
Specified by:
afterUpdate in interface CacheConcurrencyStrategy

clear

public void clear()
            throws CacheException
Specified by:
clear in interface CacheConcurrencyStrategy

destroy

public void destroy()
Specified by:
destroy in interface CacheConcurrencyStrategy

evict

public void evict(Object key)
            throws CacheException
Invalidate the item
Specified by:
evict in interface CacheConcurrencyStrategy

get

public Object get(Object key,
                  long txTimestamp)
            throws CacheException
Get the most recent version, if available.
Specified by:
get in interface CacheConcurrencyStrategy

getCache

public Cache getCache()
Specified by:
getCache in interface CacheConcurrencyStrategy

getRegionName

public String getRegionName()
Specified by:
getRegionName in interface CacheConcurrencyStrategy

insert

public boolean insert(Object key,
                      Object value,
                      Object currentVersion)
Invalidate the item
Specified by:
insert in interface CacheConcurrencyStrategy

lock

public SoftLock lock(Object key,
                     Object version)
            throws CacheException
Do nothing.
Specified by:
lock in interface CacheConcurrencyStrategy
Returns:
null, no lock

put

public boolean put(Object key,
                   Object value,
                   long txTimestamp,
                   Object version,
                   Comparator versionComparator,
                   boolean minimalPut)
            throws CacheException
Add an item to the cache.
Specified by:
put in interface CacheConcurrencyStrategy

release

public void release(Object key,
                    SoftLock lock)
            throws CacheException
Invalidate the item (again, for safety).
Specified by:
release in interface CacheConcurrencyStrategy

remove

public void remove(Object key)
            throws CacheException
Specified by:
remove in interface CacheConcurrencyStrategy

setCache

public void setCache(Cache cache)
Specified by:
setCache in interface CacheConcurrencyStrategy

toString

public String toString()

update

public boolean update(Object key,
                      Object value,
                      Object currentVersion,
                      Object previousVersion)
Do nothing.
Specified by:
update in interface CacheConcurrencyStrategy