Top Description Fields Constructors Methods
net.sf.ehcache.hibernate.nonstop

public Class NonstopAwareCollectionRegionAccessStrategy

extends Object
implements CollectionRegionAccessStrategy
Class Inheritance
All Implemented Interfaces
org.hibernate.cache.access.CollectionRegionAccessStrategy
Imports
net.sf.ehcache.constructs.nonstop.NonStopCacheException, org.hibernate.cache.CacheException, .CollectionRegion, org.hibernate.cache.access.CollectionRegionAccessStrategy, .SoftLock

Implementation of CollectionRegionAccessStrategy that handles NonStopCacheException using HibernateNonstopCacheExceptionHandler
Author
Abhishek Sanoujam

Field Summary

Modifier and TypeField and Description
private final CollectionRegionAccessStrategy
private final HibernateNonstopCacheExceptionHandler

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
evict(Object
The key of the item to remove
key
)

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.evict.

Forcibly evict an item from the cache immediately without regard for transaction isolation.
public void
evictAll()

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.evictAll.

Forcibly evict all items from the cache immediately without regard for transaction isolation.
public Object
get(Object
The key of the item to be retrieved.
key
,
long
a timestamp prior to the transaction start time
txTimestamp
)

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.get.

Attempt to retrieve an object from the cache.
public CollectionRegion
getRegion()

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.getRegion.

Get the wrapped collection cache region
public SoftLock
lockItem(Object
The key of the item to lock
key
,
Object
The item's current version value
version
)

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.lockItem.

We are going to attempt to update/delete the keyed object.
public SoftLock
public boolean
putFromLoad(Object
The item key
key
,
Object
The item
value
,
long
a timestamp prior to the transaction start time
txTimestamp
,
Object
the item version number
version
,
boolean
Explicit minimalPut flag
minimalPutOverride
)

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.putFromLoad.

Attempt to cache an object, after loading from the database, explicitly specifying the minimalPut behavior.
public boolean
putFromLoad(Object
The item key
key
,
Object
The item
value
,
long
a timestamp prior to the transaction start time
txTimestamp
,
Object
the item version number
version
)

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.putFromLoad.

Attempt to cache an object, after loading from the database.
public void
remove(Object
The key of the item to remove
key
)

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.remove.

Called after an item has become stale (before the transaction completes).
public void
removeAll()

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.removeAll.

Called to evict data from the entire region
public void
unlockItem(Object
The item key
key
,
SoftLock
The lock previously obtained from lockItem
lock
)

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.unlockItem.

Called when we have finished the attempted update/delete (which may or may not have been successful), after transaction completion.
public void
unlockRegion(SoftLock
The lock previously obtained from lockRegion
lock
)

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.unlockRegion.

Called after we have finished the attempted invalidation of the entire region
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

actualStrategyback to summary
private final CollectionRegionAccessStrategy actualStrategy
hibernateNonstopExceptionHandlerback to summary
private final HibernateNonstopCacheExceptionHandler hibernateNonstopExceptionHandler

Constructor Detail

NonstopAwareCollectionRegionAccessStrategyback to summary
public NonstopAwareCollectionRegionAccessStrategy(CollectionRegionAccessStrategy actualStrategy, HibernateNonstopCacheExceptionHandler hibernateNonstopExceptionHandler)

Constructor accepting the actual CollectionRegionAccessStrategy and the HibernateNonstopCacheExceptionHandler

Method Detail

evictback to summary
public void evict(Object key) throws CacheException

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.evict.

Doc from org.hibernate.cache.access.CollectionRegionAccessStrategy.evict.

Forcibly evict an item from the cache immediately without regard for transaction isolation.

Parameters
key:Object

The key of the item to remove

Exceptions
CacheException:
Propogated from underlying org.hibernate.cache.Region
See Also
org.hibernate.cache.access.EntityRegionAccessStrategy#evict(java.lang.Object)
evictAllback to summary
public void evictAll() throws CacheException

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.evictAll.

Doc from org.hibernate.cache.access.CollectionRegionAccessStrategy.evictAll.

Forcibly evict all items from the cache immediately without regard for transaction isolation.

Exceptions
CacheException:
Propogated from underlying org.hibernate.cache.Region
See Also
org.hibernate.cache.access.EntityRegionAccessStrategy#evictAll()
getback to summary
public Object get(Object key, long txTimestamp) throws CacheException

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.get.

Doc from org.hibernate.cache.access.CollectionRegionAccessStrategy.get.

Attempt to retrieve an object from the cache. Mainly used in attempting to resolve entities/collections from the second level cache.

Parameters
key:Object

The key of the item to be retrieved.

txTimestamp:long

a timestamp prior to the transaction start time

Returns:Object

the cached object or null

Exceptions
CacheException:
Propogated from underlying org.hibernate.cache.Region
See Also
org.hibernate.cache.access.EntityRegionAccessStrategy#get(java.lang.Object, long)
getRegionback to summary
public CollectionRegion getRegion()

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.getRegion.

Doc from org.hibernate.cache.access.CollectionRegionAccessStrategy.getRegion.

Get the wrapped collection cache region

Returns:CollectionRegion

The underlying region

See Also
org.hibernate.cache.access.EntityRegionAccessStrategy#getRegion()
lockItemback to summary
public SoftLock lockItem(Object key, Object version) throws CacheException

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.lockItem.

Doc from org.hibernate.cache.access.CollectionRegionAccessStrategy.lockItem.

We are going to attempt to update/delete the keyed object. This method is used by "asynchronous" concurrency strategies.

The returned object must be passed back to release(), to release the lock. Concurrency strategies which do not support client-visible locks may silently return null.

Parameters
key:Object

The key of the item to lock

version:Object

The item's current version value

Returns:SoftLock

A representation of our lock on the item; or null.

Exceptions
CacheException:
Propogated from underlying org.hibernate.cache.Region
See Also
org.hibernate.cache.access.EntityRegionAccessStrategy#lockItem(java.lang.Object, java.lang.Object)
lockRegionback to summary
public SoftLock lockRegion() throws CacheException

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.lockRegion.

Doc from org.hibernate.cache.access.CollectionRegionAccessStrategy.lockRegion.

Lock the entire region

Returns:SoftLock

A representation of our lock on the item; or null.

Exceptions
CacheException:
Propogated from underlying org.hibernate.cache.Region
See Also
org.hibernate.cache.access.EntityRegionAccessStrategy#lockRegion()
putFromLoadback to summary
public boolean putFromLoad(Object key, Object value, long txTimestamp, Object version, boolean minimalPutOverride) throws CacheException

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.putFromLoad.

Doc from org.hibernate.cache.access.CollectionRegionAccessStrategy.putFromLoad.

Attempt to cache an object, after loading from the database, explicitly specifying the minimalPut behavior.

Parameters
key:Object

The item key

value:Object

The item

txTimestamp:long

a timestamp prior to the transaction start time

version:Object

the item version number

minimalPutOverride:boolean

Explicit minimalPut flag

Returns:boolean

true if the object was successfully cached

Exceptions
CacheException:
Propogated from underlying org.hibernate.cache.Region
See Also
org.hibernate.cache.access.EntityRegionAccessStrategy#putFromLoad(java.lang.Object, java.lang.Object, long, java.lang.Object, boolean)
putFromLoadback to summary
public boolean putFromLoad(Object key, Object value, long txTimestamp, Object version) throws CacheException

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.putFromLoad.

Doc from org.hibernate.cache.access.CollectionRegionAccessStrategy.putFromLoad.

Attempt to cache an object, after loading from the database.

Parameters
key:Object

The item key

value:Object

The item

txTimestamp:long

a timestamp prior to the transaction start time

version:Object

the item version number

Returns:boolean

true if the object was successfully cached

Exceptions
CacheException:
Propogated from underlying org.hibernate.cache.Region
See Also
org.hibernate.cache.access.EntityRegionAccessStrategy#putFromLoad(java.lang.Object, java.lang.Object, long, java.lang.Object)
removeback to summary
public void remove(Object key) throws CacheException

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.remove.

Doc from org.hibernate.cache.access.CollectionRegionAccessStrategy.remove.

Called after an item has become stale (before the transaction completes). This method is used by "synchronous" concurrency strategies.

Parameters
key:Object

The key of the item to remove

Exceptions
CacheException:
Propogated from underlying org.hibernate.cache.Region
See Also
org.hibernate.cache.access.EntityRegionAccessStrategy#remove(java.lang.Object)
removeAllback to summary
public void removeAll() throws CacheException

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.removeAll.

Doc from org.hibernate.cache.access.CollectionRegionAccessStrategy.removeAll.

Called to evict data from the entire region

Exceptions
CacheException:
Propogated from underlying org.hibernate.cache.Region
See Also
org.hibernate.cache.access.EntityRegionAccessStrategy#removeAll()
unlockItemback to summary
public void unlockItem(Object key, SoftLock lock) throws CacheException

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.unlockItem.

Doc from org.hibernate.cache.access.CollectionRegionAccessStrategy.unlockItem.

Called when we have finished the attempted update/delete (which may or may not have been successful), after transaction completion. This method is used by "asynchronous" concurrency strategies.

Parameters
key:Object

The item key

lock:SoftLock

The lock previously obtained from lockItem

Exceptions
CacheException:
Propogated from underlying org.hibernate.cache.Region
See Also
org.hibernate.cache.access.EntityRegionAccessStrategy#unlockItem(java.lang.Object, org.hibernate.cache.access.SoftLock)
unlockRegionback to summary
public void unlockRegion(SoftLock lock) throws CacheException

Implements org.hibernate.cache.access.CollectionRegionAccessStrategy.unlockRegion.

Doc from org.hibernate.cache.access.CollectionRegionAccessStrategy.unlockRegion.

Called after we have finished the attempted invalidation of the entire region

Parameters
lock:SoftLock

The lock previously obtained from lockRegion

Exceptions
CacheException:
Propogated from underlying org.hibernate.cache.Region
See Also
org.hibernate.cache.access.EntityRegionAccessStrategy#unlockRegion(org.hibernate.cache.access.SoftLock)