|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.jboss.cache.loader.ChainingCacheLoader
public class ChainingCacheLoader
This decorator is used whenever more than one cache loader is configured. READ operations are directed to each of the cache loaders (in the order which they were configured) until a non-null (or non-empty in the case of retrieving collection objects) result is achieved. WRITE operations are propagated to ALL registered cacheloaders that specified set ignoreModifications to false.
| Constructor Summary | |
|---|---|
ChainingCacheLoader()
|
|
| Method Summary | |
|---|---|
void |
addCacheLoader(CacheLoader l,
CacheLoaderConfig.IndividualCacheLoaderConfig cfg)
Adds a cache loader to the chain (always added at the end of the chain) |
void |
commit(java.lang.Object tx)
Commit the transaction. |
void |
create()
Creates individual cache loaders. |
void |
destroy()
|
boolean |
exists(Fqn name)
Checks whether the CacheLoader has a node with Fqn |
java.util.Map |
get(Fqn name)
Returns all keys and values from the persistent store, given a fully qualified name |
java.util.List |
getCacheLoaders()
Returns a List |
java.util.Set |
getChildrenNames(Fqn fqn)
Returns a list of children names, all names are relative. |
int |
getSize()
Returns the number of cache loaders in the chain. |
byte[] |
loadEntireState()
Fetch the entire state for this cache from secondary storage (disk, DB) and return it as a byte buffer. |
byte[] |
loadState(Fqn subtree)
Fetch a portion of the state for this cache from secondary storage (disk, DB) and return it as a byte buffer. |
void |
prepare(java.lang.Object tx,
java.util.List modifications,
boolean one_phase)
Prepare the modifications. |
void |
purgeIfNecessary()
|
void |
put(Fqn name,
java.util.Map attributes)
Inserts all elements of attributes into the attributes hashmap of the given node, overwriting existing attributes, but not clearing the existing hashmap before insertion (making it a union of existing and new attributes) If the node does not exist, all parent nodes from the root down are created automatically |
java.lang.Object |
put(Fqn name,
java.lang.Object key,
java.lang.Object value)
Inserts key and value into the attributes hashmap of the given node. |
void |
put(java.util.List modifications)
Inserts all modifications to the backend store. |
void |
remove(Fqn name)
Removes the given node. |
java.lang.Object |
remove(Fqn name,
java.lang.Object key)
Removes the given key and value from the attributes of the given node. |
void |
removeData(Fqn name)
Removes all attributes from a given node, but doesn't delete the node itself |
void |
rollback(java.lang.Object tx)
Roll the transaction back. |
void |
setCache(TreeCache c)
This method allows the CacheLoader to set the TreeCache, therefore allowing the CacheLoader to invoke methods of the TreeCache. |
void |
setConfig(java.util.Properties url)
Sets the configuration. |
void |
setRegionManager(RegionManager manager)
No-op, as this class doesn't directly use the RegionManager. |
void |
start()
|
void |
stop()
|
void |
storeEntireState(byte[] state)
Store the given state in secondary storage. |
void |
storeState(byte[] state,
Fqn subtree)
Store the given portion of the cache tree's state in secondary storage. |
java.lang.String |
toString()
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public ChainingCacheLoader()
| Method Detail |
|---|
public void setConfig(java.util.Properties url)
create() and start()
setConfig in interface CacheLoaderurl - A list of properties, defined in the XML filepublic void setCache(TreeCache c)
setCache in interface CacheLoaderc - The cache on which this loader works
public java.util.Set getChildrenNames(Fqn fqn)
throws java.lang.Exception
getChildrenNames in interface CacheLoaderfqn - The FQN of the parent
java.lang.Exception
public java.util.Map get(Fqn name)
throws java.lang.Exception
get in interface CacheLoadername -
public boolean exists(Fqn name)
throws java.lang.Exception
exists in interface CacheLoadername -
java.lang.Exception
public java.lang.Object put(Fqn name,
java.lang.Object key,
java.lang.Object value)
throws java.lang.Exception
put in interface CacheLoaderjava.lang.Exception
public void put(Fqn name,
java.util.Map attributes)
throws java.lang.Exception
put in interface CacheLoadername - The fully qualified name of the nodeattributes - A Map of attributes. Can be null
java.lang.Exception
public void put(java.util.List modifications)
throws java.lang.Exception
put in interface CacheLoadermodifications - A Listjava.lang.Exception
public java.lang.Object remove(Fqn name,
java.lang.Object key)
throws java.lang.Exception
remove in interface CacheLoaderjava.lang.Exception
public void remove(Fqn name)
throws java.lang.Exception
remove in interface CacheLoaderjava.lang.Exception
public void removeData(Fqn name)
throws java.lang.Exception
removeData in interface CacheLoadername -
java.lang.Exception
public void prepare(java.lang.Object tx,
java.util.List modifications,
boolean one_phase)
throws java.lang.Exception
tx (tx is the key)
prepare in interface CacheLoadertx - The transaction, just used as a hashmap keymodifications - Listone_phase - Persist immediately and (for example) commit the local JDBC transaction as well. When true,
we won't get a commit(Object) or rollback(Object) method call later
java.lang.Exception
public void commit(java.lang.Object tx)
throws java.lang.Exception
tx and commit that transactiontx key, to (for example) a file system (note this only holds if the previous prepare() did
not define one_phase=true
commit in interface CacheLoadertx -
java.lang.Exceptionpublic void rollback(java.lang.Object tx)
tx and roll back that transaction
rollback in interface CacheLoadertx -
public byte[] loadEntireState()
throws java.lang.Exception
loadEntireState in interface CacheLoaderjava.lang.Exception
public void storeEntireState(byte[] state)
throws java.lang.Exception
storeEntireState in interface CacheLoaderjava.lang.Exception
public void create()
throws java.lang.Exception
create in interface org.jboss.system.Servicejava.lang.Exception
public void start()
throws java.lang.Exception
start in interface org.jboss.system.Servicejava.lang.Exceptionpublic void stop()
stop in interface org.jboss.system.Servicepublic void destroy()
destroy in interface org.jboss.system.Service
public byte[] loadState(Fqn subtree)
throws java.lang.Exception
ExtendedCacheLoaderExtendedCacheLoader.storeState(byte[], Fqn).
loadState in interface ExtendedCacheLoadersubtree - Fqn naming the root (i.e. highest level parent) node of
the subtree for which state is requested.
java.lang.ExceptionTreeCache.activateRegion(String)public void setRegionManager(RegionManager manager)
setRegionManager in interface ExtendedCacheLoadermanager - the region manager to use, or null.
public void storeState(byte[] state,
Fqn subtree)
throws java.lang.Exception
ExtendedCacheLoadersubtree,
then no special behavior is required. Otherwise, ensure that
the state is integrated under the given subtree. Typically
in the latter case subtree would be the Fqn of the buddy
backup region for
a buddy group; e.g.
If the the transferred state had Fqns starting with "/a" and
subtree was "/_BUDDY_BACKUP_/192.168.1.2:5555" then the
state should be stored in the local persistent store under
"/_BUDDY_BACKUP_/192.168.1.2:5555/a"
storeState in interface ExtendedCacheLoaderstate - the state to storesubtree - Fqn naming the root (i.e. highest level parent) node of
the subtree included in state. If the Fqns
of the data included in state are not
already children of subtree, then their
Fqns should be altered to make them children of
subtree before they are persisted.
java.lang.Exceptionpublic int getSize()
public java.util.List getCacheLoaders()
public void addCacheLoader(CacheLoader l,
CacheLoaderConfig.IndividualCacheLoaderConfig cfg)
l - the cache loader to addcfg - and its configurationpublic java.lang.String toString()
toString in class java.lang.Object
public void purgeIfNecessary()
throws java.lang.Exception
java.lang.Exception
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||