Methods Summary |
---|
private void | activateCacheRegion(java.lang.String regionName)
String fqnString = regionFqn.toString();
// FIXME -- find a way that doesn't involve this API
if (cache.getMarshaller().isInactive(fqnString))
{
try
{
// Only register the classloader if it's not a shared region.
// If it's shared, no single classloader is valid
if (!SecondLevelCacheUtil.isSharedClassLoaderRegion(regionName))
{
cache.registerClassLoader(fqnString, Thread.currentThread().getContextClassLoader());
}
cache.activateRegion(fqnString);
}
catch (Exception e)
{
throw new CacheException("Problem activating region " + regionName, e);
}
}
else
{
log.debug("activateCacheRegion(): Region " + fqnString + " is already active");
}
|
public void | clear()
try {
cache.remove( regionFqn );
}
catch (Exception e) {
throw new CacheException(e);
}
|
public void | destroy()
try {
// NOTE : Hibernate's class uses evict() but that isn't recursive!
//cache.evict( regionFqn );
Option opt = new Option();
opt.setCacheModeLocal(true);
cache.remove(regionFqn, opt);
if (cache.getUseRegionBasedMarshalling() && !SecondLevelCacheUtil.isSharedClassLoaderRegion(regionName))
{
inactivateCacheRegion();
}
}
catch (CacheException e)
{
throw e;
}
catch( Exception e ) {
throw new CacheException( e );
}
|
public java.lang.Object | get(java.lang.Object key)
Transaction tx = suspend();
try {
return read(key);
}
finally {
resume( tx );
}
|
public long | getElementCountInMemory()
try {
Set children = cache.getChildrenNames( regionFqn );
return children == null ? 0 : children.size();
}
catch (Exception e) {
throw new CacheException(e);
}
|
public long | getElementCountOnDisk()
return 0;
|
public java.lang.String | getRegionName()
return regionName;
|
public long | getSizeInMemory()
return -1;
|
public int | getTimeout()
return 600; //60 seconds
|
private void | inactivateCacheRegion()
String fqnString = regionFqn.toString();
// FIXME -- find a way that doesn't involve this API
if (!cache.getMarshaller().isInactive(fqnString))
{
try
{
cache.inactivateRegion(fqnString);
cache.unregisterClassLoader(fqnString);
}
catch (Exception e)
{
throw new CacheException("Problem activating region " + fqnString, e);
}
}
else
{
log.debug("inactivateCacheRegion(): Region " + fqnString + " is already inactive");
}
|
public void | lock(java.lang.Object key)
throw new UnsupportedOperationException( "TreeCache is a fully transactional cache: " + regionName );
|
public long | nextTimestamp()
return System.currentTimeMillis() / 100;
|
public void | put(java.lang.Object key, java.lang.Object value)
Transaction tx = suspend();
try {
if (localWritesOnly) {
Option option = new Option();
option.setCacheModeLocal(true);
// Overloaded method isn't available, so have to use InvocationContext
cache.getInvocationContext().setOptionOverrides(option);
try {
// do the failfast put outside the scope of the JTA txn
cache.putFailFast( new Fqn( regionFqn, key ), ITEM, value, 0 );
}
finally {
cache.getInvocationContext().setOptionOverrides(null);
}
}
else {
//do the failfast put outside the scope of the JTA txn
cache.putFailFast( new Fqn( regionFqn, key ), ITEM, value, 0 );
}
}
catch (TimeoutException te) {
//ignore!
log.debug("ignoring write lock acquisition failure");
}
catch (Exception e) {
throw new CacheException(e);
}
finally {
resume( tx );
}
|
public java.lang.Object | read(java.lang.Object key)
try {
return cache.get( new Fqn( regionFqn, key ), ITEM );
}
catch (Exception e) {
throw new CacheException(e);
}
|
public void | remove(java.lang.Object key)
try {
if (localWritesOnly) {
Option option = new Option();
option.setCacheModeLocal(true);
cache.remove( new Fqn( regionFqn, key ), option );
}
else {
cache.remove( new Fqn( regionFqn, key ) );
}
}
catch (Exception e) {
throw new CacheException(e);
}
|
private void | resume(javax.transaction.Transaction tx)
try {
if (tx!=null) transactionManager.resume(tx);
}
catch (Exception e) {
throw new CacheException("Could not resume transaction", e);
}
|
private javax.transaction.Transaction | suspend()
Transaction tx = null;
try {
if ( transactionManager!=null ) {
tx = transactionManager.suspend();
}
}
catch (SystemException se) {
throw new CacheException("Could not suspend transaction", se);
}
return tx;
|
public java.util.Map | toMap()
try {
Map result = new HashMap();
Set childrenNames = cache.getChildrenNames( regionFqn );
if (childrenNames != null) {
Iterator iter = childrenNames.iterator();
while ( iter.hasNext() ) {
Object key = iter.next();
result.put(
key,
cache.get( new Fqn( regionFqn, key ), ITEM )
);
}
}
return result;
}
catch (Exception e) {
throw new CacheException(e);
}
|
public java.lang.String | toString()
return "JBCCache(" + regionName + ')";
|
public void | unlock(java.lang.Object key)
throw new UnsupportedOperationException( "TreeCache is a fully transactional cache: " + regionName );
|
public void | update(java.lang.Object key, java.lang.Object value)
try {
if (localWritesOnly) {
Option option = new Option();
option.setCacheModeLocal(true);
cache.put( new Fqn( regionFqn, key ), ITEM, value, option );
}
else {
cache.put( new Fqn( regionFqn, key ), ITEM, value );
}
}
catch (Exception e) {
throw new CacheException(e);
}
|