|
Oracle® Coherence Java API Reference Release 3.6.0.0 E15725-01 |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object
com.tangosol.util.Base
com.tangosol.net.CacheFactory
public abstract class CacheFactory
Factory for the Coherence™ cache product.
One of the most common functions provided by the CacheFactory is ability to obtain an instance of a cache. There are various cache services and cache topologies that are supported by Coherence. <p/> To get a cache reference use the getCache(String, ClassLoader)
or getCache(String)
methods.
This approach that has a lot of advantages over service type specific methods described further below because:
In addition to the generic, configuration driven approach decribed above, it is possible to manage the cache service types explicitly. There are several different types of cache services available:
DistributedCache service provides the means for handling a collection of resources distributed (partitioned) across a cluster with concurrent access control.
The following factory methods return an instance of Distributed Cache service: getDistributedCache()
, getDistributedCache(String)
, getDistributedCache(String, ClassLoader)
ReplicatedCache service provides the means for handling a collection of resources replicated across a cluster with concurrent access control based on the lease model. Each member of the cluster running the ReplicatedCache service holds a Map of resources that is replicated by all members of the cluster. The resources are Serializable (or Coherence "XML-izable") objects. In order for a member of the cluster to get a resource from the cache for a purpose of an update or addition of a resource to the cache, it must first obtain a lease for that resource. At any given time for every given resource there is a single member serving as an arbiter for that resource. This approach ensures the full synchronization of data across the entire cluster. Full failover support is also provided by ensuring that each cluster member has an up-to-date copy of the data and by automatically assigning a new arbiter for each resource that previously was arbited by a member that left the cluster.
The following factory methods return an instance of Replicated Cache service: getReplicatedCache()
, getReplicatedCache(String)
, getReplicatedCache(String, ClassLoader)
OptimisticCache is a clustered cache implementation similar to the ReplicatedCache implementation, but without any concurrency control. This implementation has the highest possible throughput. It also allows to use an alternative underlying store for the cached data (for example, a MRU/MFU-based cache). However, if two cluster members are independently pruning or purging the underlying local stores, it is possible that a cluster member may have a different store content than that held by another cluster member.
The following factory methods return an instance of Optimistic Cache service: getOptimisticCache()
, getOptimisticCache(String)
, getOptimisticCache(String, ClassLoader)
When a cache retrived by any of the above methods is no longer used, it is preferrable to call releaseCache(NamedCache)
to release the associated resources. To destroy all instances of the cache across the cluster, use destroyCache(NamedCache)
.
Other services:
Invocation service provides the means for invoking and monitoring execution of classes on specified nodes across a cluster.
The following factory method returns an instance of Invocation service: getInvocationService(String)
Field Summary | |
---|---|
static String |
PRODUCT The product name string. |
static String |
VERSION Software version string. |
Constructor Summary | |
---|---|
CacheFactory() |
Method Summary | |
---|---|
static boolean |
commitTransactionCollection(Collection collCaches, int cRetry) Commit the transaction represented by a collection of TransactionMap objects. |
static void |
destroyCache(NamedCache cache) Releases and destroys the specified NamedCache. |
static Cluster |
ensureCluster() Obtain a Cluster object running Coherence services. |
static NamedCache |
getCache(String sName) Return an instance of a cache configured by the current ConfigurableCacheFactory. |
static NamedCache |
getCache(String sName, ClassLoader loader) Return an instance of a cache configured by the current ConfigurableCacheFactory. |
static CacheFactoryBuilder |
getCacheFactoryBuilder() Obtain the CacheFactoryBuilder singleton using the configuration info from the "cache-factory-builder-config" element. |
static XmlElement |
getCacheFactoryBuilderConfig() Return the cache factory builder configuration as defined by the "cache-factory-builder-config" element in the tangosol-coherence.xml configuration file. |
static Cluster |
getCluster() Return a Cluster object for Coherence services. |
static XmlElement |
getClusterConfig() Return the default cluster configuration as defined by the "cluster-config" element in the tangosol-coherence.xml configuration file. |
static ConfigurableCacheFactory |
getConfigurableCacheFactory() Obtain the ConfigurableCacheFactory singleton using the configuration info from the "configurablecache-factory-config" element located in the tangosol-coherence.xml configuration file. |
static ConfigurableCacheFactory |
getConfigurableCacheFactory(ClassLoader loader) Obtain the ConfigurableCacheFactory associated with the specified class loader. |
static XmlElement |
getConfigurableCacheFactoryConfig() Return the configurable cache factory configuration as defined by the "configurable-cache-factory-config" element in the tangosol-coherence.xml configuration file. |
static NamedCache |
getDistributedCache() Deprecated. As of Coherence 3.3, use getService(String).ensureCache(null, null) instead |
static NamedCache |
getDistributedCache(String sName) Deprecated. As of Coherence 3.3, use getCache(String) instead |
static NamedCache |
getDistributedCache(String sName, ClassLoader loader) Deprecated. As of Coherence 3.3, use getCache(String, ClassLoader) instead |
static XmlElement |
getDistributedCacheConfig() Return the default distributed cache configuration. |
static CacheService |
getDistributedCacheService(String sName) Deprecated. As of Coherence 3.3, use getService(String) instead |
static CacheService |
getDistributedCacheService(String sName, BackingMapManager manager) Deprecated. As of Coherence 3.3, deprecated with no replacement |
static InvocationService |
getInvocationService(String sName) Deprecated. As of Coherence 3.3, use getService(String) instead |
static CacheService |
getLocalCacheService(String sName) Deprecated. As of Coherence 3.3, use getService(String) instead |
static CacheService |
getLocalCacheService(String sName, BackingMapManager manager) Deprecated. As of Coherence 3.3, deprecated with no replacement |
static TransactionMap |
getLocalTransaction(NamedCache map) Factory method returning an instance of the TransactionMap that is based on the specified NamedCache and is local to this JVM. |
static XmlElement |
getLoggingConfig() Return the configuration info for the logging facility as defined by the "logging-config" element in the tangosol-coherence.xml configuration file. |
static XmlElement |
getManagementConfig() Return the management framework configuration. |
static NamedCache |
getOptimisticCache() Deprecated. As of Coherence 3.3, use getService(String).ensureCache(null, null) instead |
static NamedCache |
getOptimisticCache(String sName) Deprecated. As of Coherence 3.3, use getCache(String) instead |
static NamedCache |
getOptimisticCache(String sName, ClassLoader loader) Deprecated. As of Coherence 3.3, use getCache(String, ClassLoader) instead |
static CacheService |
getOptimisticCacheService(String sName) Deprecated. As of Coherence 3.3, use getService(String) instead |
static CacheService |
getOptimisticCacheService(String sName, BackingMapManager manager) Deprecated. As of Coherence 3.3, deprecated with no replacement |
static NamedCache |
getReplicatedCache() Deprecated. As of Coherence 3.3, use getService(String).ensureCache(null, null) instead |
static NamedCache |
getReplicatedCache(String sName) Deprecated. As of Coherence 3.3, use getCache(String) instead |
static NamedCache |
getReplicatedCache(String sName, ClassLoader loader) Deprecated. As of Coherence 3.3, use getCache(String, ClassLoader) instead |
static XmlElement |
getReplicatedCacheConfig() Return the default replicated cache configuration. |
static CacheService |
getReplicatedCacheService(String sName) Deprecated. As of Coherence 3.3, use getService(String) instead |
static CacheService |
getReplicatedCacheService(String sName, BackingMapManager manager) Deprecated. As of Coherence 3.3, deprecated with no replacement |
static XmlElement |
getSecurityConfig() Return the security framework configuration. |
static Service |
getService(String sName) Return an instance of a service configured by the current ConfigurableCacheFactory. |
static XmlElement |
getServiceConfig(String sServiceType) Return the configuration for the specified service type. |
static boolean |
isLogEnabled(int nSeverity) Check if a message of the specified severity level will be logged using the Coherence logging facility. |
static void |
log(String sMessage, int nSeverity) Log a message using Coherence logging facility which is driven by the "logging-config" element located in the tangosol-coherence.xml configuration file. |
static void |
main(String[] asArg) Invoke the Coherence command line tool. |
static void |
releaseCache(NamedCache cache) Release local resources associated with the specified instance of the cache. |
static void |
rollbackTransactionCollection(Collection collCaches) Roll back the transaction represented by a collection of TransactionMap objects. |
static void |
setCacheFactoryBuilder(CacheFactoryBuilder cfb) Specifify a singleton CacheFactoryBuilder. |
static void |
setCacheFactoryBuilderConfig(XmlElement xmlCfg) Set the cache factory builder configuration. |
static void |
setConfigurableCacheFactory(ConfigurableCacheFactory factory) Specify a singleton of ConfigurableCacheFactory. |
static void |
setConfigurableCacheFactoryConfig(XmlElement xmlCfg) Set the configurable cache factory configuration. |
static void |
setLoggingConfig(XmlElement xmlCfg) Set the configuration info for the logging facility. |
static void |
setManagementConfig(XmlElement xmlCfg) Set the management framework configuration. |
static void |
setSecurityConfig(XmlElement xmlCfg) Set the security framework configuration. |
static void |
setServiceConfig(String sServiceType, XmlElement xmlCfg) Set the configuration for the specified service type. |
static void |
shutdown() Shutdown all clustered services. |
Field Detail |
---|
public static final String PRODUCT
public static final String VERSION
Constructor Detail |
---|
public CacheFactory()
Method Detail |
---|
public static NamedCache getReplicatedCache()
getService(String).ensureCache(null, null)
insteadpublic static NamedCache getReplicatedCache(String sName)
getCache(String)
insteadsName
- cache name (unique across the cluster). If the NamedCache with the specified name already exists, a reference to the same object will be returnedpublic static NamedCache getReplicatedCache(String sName, ClassLoader loader)
getCache(String, ClassLoader)
insteadsName
- cache name (unique across the cluster). If the NamedCache with the specified name already exists, a reference to the same object will be returnedloader
- ClassLoader that should be used to deserialize objects inserted in the map by other members of the clusterpublic static CacheService getReplicatedCacheService(String sName)
getService(String)
insteadsName
- service name (unique across the cluster). If the service with the specified name already exists, the reference to the same service will be returned. If the name is not specified the default service name will be usedpublic static CacheService getReplicatedCacheService(String sName, BackingMapManager manager)
Note: If the underlying backing map can be modified by anything other than the ReplicatedCacheService itself (e.g. if the Map automatically expires its entries periodically or size-limits its contents), the service does not prevent any such modifications regardless of locks that are placed.
sName
- service name (unique across the cluster). If the service with the specified name already exists, the reference to the same service will be returned. If the name is not specified the default service name will be usedmanager
- a BackingMapManager that will be used to create underlying stores for the cached data. If not specified, SafeHashMap
objects will be used for all local maps.public static NamedCache getOptimisticCache()
getService(String).ensureCache(null, null)
insteadpublic static NamedCache getOptimisticCache(String sName)
getCache(String)
insteadsName
- cache name (unique across the cluster). If the NamedCache with the specified name already exists, a reference to the same object will be returnedpublic static NamedCache getOptimisticCache(String sName, ClassLoader loader)
getCache(String, ClassLoader)
insteadsName
- cache name (unique across the cluster). If the NamedCache with the specified name already exists, a reference to the same object will be returnedloader
- ClassLoader that should be used to deserialize objects inserted in the map by other members of the clusterpublic static CacheService getOptimisticCacheService(String sName)
getService(String)
insteadsName
- service name (unique across the cluster). If the service with the specified name already exists, the reference to the same service will be returned. If the name is not specified the default service name will be usedpublic static CacheService getOptimisticCacheService(String sName, BackingMapManager manager)
LocalCache
implementation can be used.sName
- service name (unique across the cluster). If the service with the specified name already exists, the reference to the same service will be returned. If the name is not specified the default service name will be usedmanager
- a BackingMapManager that will be used to create underlying stores for the cached data. If not specified, SafeHashMap
objects will be used for all local maps.public static NamedCache getDistributedCache()
getService(String).ensureCache(null, null)
insteadpublic static NamedCache getDistributedCache(String sName)
getCache(String)
insteadsName
- cache name (unique across the cluster); if the NamedCache with the specified name already exists, a reference to the same object will be returnedpublic static NamedCache getDistributedCache(String sName, ClassLoader loader)
getCache(String, ClassLoader)
insteadsName
- cache name (unique across the cluster); if the NamedCache with the specified name already exists, a reference to the same object will be returnedloader
- ClassLoader that should be used to deserialize objects inserted in the map by other members of the clusterpublic static CacheService getDistributedCacheService(String sName)
getService(String)
insteadsName
- service name (unique across the cluster). If the service with the specified name already exists, the reference to the same service will be returned. If the name is not specified the default service name will be usedpublic static CacheService getDistributedCacheService(String sName, BackingMapManager manager)
LocalCache
implementation can be used.sName
- service name (unique across the cluster). If the service with the specified name already exists, the reference to the same service will be returned. If the name is not specified the default service name will be usedmanager
- a BackingMapManager that will be used to create underlying stores for the cached data. If not specified, SafeHashMap
objects will be used for all local maps.public static CacheService getLocalCacheService(String sName)
getService(String)
insteadsName
- service name (unique across the cluster). If the service with the specified name already exists, the reference to the same service will be returned. If the name is not specified the default service name will be usedpublic static CacheService getLocalCacheService(String sName, BackingMapManager manager)
LocalCache
implementation can be used.sName
- service name (unique across the cluster). If the service with the specified name already exists, the reference to the same service will be returned. If the name is not specified the default service name will be usedmanager
- a BackingMapManager that will be used to create underlying stores for the cached data. If not specified, SafeHashMap
objects will be used for all local maps.public static CacheFactoryBuilder getCacheFactoryBuilder()
public static void setCacheFactoryBuilder(CacheFactoryBuilder cfb)
cfb
- an instance of CacheFactoryBuilderpublic static ConfigurableCacheFactory getConfigurableCacheFactory()
public static ConfigurableCacheFactory getConfigurableCacheFactory(ClassLoader loader)
setConfigurableCacheFactory(com.tangosol.net.ConfigurableCacheFactory)
has been called, the same factory instance will be returned.loader
- the class loader for which to return a configurable cache factorypublic static void setConfigurableCacheFactory(ConfigurableCacheFactory factory)
factory
- an instance of ConfigurableCacheFactorypublic static Service getService(String sName)
ConfigurableCacheFactory.ensureService(String)
method.sName
- service name (unique for a given configurable cache factory). If the Service with the specified name already exists, a reference to the same object will be returnedpublic static NamedCache getCache(String sName)
ConfigurableCacheFactory.ensureCache(String, ClassLoader)
method.sName
- cache name (unique for a given configurable cache factory). If the NamedCache with the specified name already exists, a reference to the same object will be returnedpublic static NamedCache getCache(String sName, ClassLoader loader)
ConfigurableCacheFactory.ensureCache(String, ClassLoader)
method.sName
- cache name (unique for a given configurable cache factory). If the NamedCache with the specified name already exists, a reference to the same object will be returnedloader
- ClassLoader that should be used to deserialize objects inserted in the map by other members of the clusterpublic static TransactionMap getLocalTransaction(NamedCache map)
Note: TransactionMap instance returned by this method will also implement the NamedCache interface, allowing a client code to chain local transaction by using the returned TransactionMap as a parameter for another getLocalTransaction()
call.
map
- the NamedCache object to be used as a base for transactionpublic static boolean commitTransactionCollection(Collection collCaches, int cRetry)
collCaches
- a collection of TransactionMap objectscRetry
- the number of times [0..100] to retry a stage of the transaction if a concurrency conflict occurspublic static void rollbackTransactionCollection(Collection collCaches)
collCaches
- a collection of TransactionMap objectspublic static InvocationService getInvocationService(String sName)
getService(String)
insteadsName
- service name (unique across the cluster). If the service with the specified name already exists, the reference to the same service will be returned. If the name is not specified the default service name will be usedpublic static Cluster getCluster()
public static Cluster ensureCluster()
public static void shutdown()
public static void releaseCache(NamedCache cache)
getReplicatedCache, getOptimisticCache
).
Releasing a NamedCache reference makes it no longer usable, but does not affect the content of the cache. In other words, all other references to the cache will still be valid, and the cache data is not affected by releasing the reference.
The reference that is released using this method can no longer be used; any attempt to use the reference will result in an exception.
The purpose for releasing a cache reference is to allow the cache implementation to release the ClassLoader used to deserialize items in the cache. The cache implementation ensures that all references to that ClassLoader are released. This implies that objects in the cache that were loaded by that ClassLoader will be re-serialized to release their hold on that ClassLoader. The result is that the ClassLoader can be garbage-collected by Java in situations where the cache is operating in an application server and applications are dynamically loaded and unloaded.
cache
- the NamedCache object to be releasedCacheService.releaseCache(NamedCache)
, destroyCache(NamedCache)
public static void destroyCache(NamedCache cache)
Warning: This method is used to completely destroy the specified cache across the cluster. All references in the entire cluster to this cache will be invalidated, the cached data will be cleared, and all resources will be released.
cache
- the NamedCache object to be destroyedCacheService.destroyCache(NamedCache)
, releaseCache(NamedCache)
public static void log(String sMessage, int nSeverity)
sMessage
- a message to lognSeverity
- the severity of the logged message; 0=default, 1=error; 2=warning; 3=info; 4-9=debugpublic static boolean isLogEnabled(int nSeverity)
nSeverity
- the severity of a messagelog(java.lang.String, int)
public static XmlElement getClusterConfig()
public static XmlElement getReplicatedCacheConfig()
getServiceConfig(String)
public static XmlElement getDistributedCacheConfig()
getServiceConfig(String)
public static XmlElement getLoggingConfig()
public static void setLoggingConfig(XmlElement xmlCfg)
xmlCfg
- an XmlElement representing the new logging configurationpublic static XmlElement getCacheFactoryBuilderConfig()
public static void setCacheFactoryBuilderConfig(XmlElement xmlCfg)
xmlCfg
- an XmlElement representing the cache factory builder configurationpublic static XmlElement getConfigurableCacheFactoryConfig()
public static void setConfigurableCacheFactoryConfig(XmlElement xmlCfg)
xmlCfg
- an XmlElement representing the configurable cache factory configurationpublic static XmlElement getSecurityConfig()
public static void setSecurityConfig(XmlElement xmlCfg)
xmlCfg
- an XmlElement representing the security framework configurationpublic static XmlElement getManagementConfig()
public static void setManagementConfig(XmlElement xmlCfg)
xmlCfg
- an XmlElement representing the management framework configurationpublic static XmlElement getServiceConfig(String sServiceType)
sServiceType
- the service typepublic static void setServiceConfig(String sServiceType, XmlElement xmlCfg)
sServiceType
- the service typexmlCfg
- an XmlElement representing the service configurationpublic static void main(String[] asArg) throws Exception
Exception
|
Oracle® Coherence Java API Reference Release 3.6.0.0 E15725-01 |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |