<infinispan> <global> <globalJmxStatistics> <replicationQueueScheduledExecutor> <properties> <transport> <properties> <asyncTransportExecutor> <properties> <serialization> <shutdown> <evictionScheduledExecutor> <properties> <asyncListenerExecutor> <properties> <default> <transaction> <invocationBatching> <loaders> <loader> <async> <properties> <singletonStore> <clustering> <sync> <l1> <stateRetrieval> <async> <hash> <lazyDeserialization> <deadlockDetection> <eviction> <customInterceptors> <interceptor> <properties> <unsafe> <jmxStatistics> <locking> <indexing> <expiration>
Configuration for the async cache loader. If enabled, this provides
you with asynchronous writes to the cache store, giving you 'write-behind' caching.
The parent element is <loader>.
Attribute | Type | Default | Description |
---|---|---|---|
shutdownTimeout |
long |
7200 | Timeout to stop the cache store. When the store is stopped it's possible that some modifications still need to be applied; you likely want to set a very large timeout to make sure to not loose data. (Javadoc) |
threadPoolSize |
int |
1 | Size of the thread pool whose threads are responsible for applying the modifications. (Javadoc) |
flushLockTimeout |
long |
5000 | Timeout to acquire the lock which guards the state to be flushed to the cache store periodically. (Javadoc) |
enabled |
boolean |
false | If true, all modifications to this cache store happen asynchronously, on a separate thread. (Javadoc) |
If this element is present, all communications are
asynchronous, in that whenever a thread sends a message sent over the wire, it does not wait
for an acknowledgement before returning. This element is mutually exclusive with the
Characteristics of this can be tuned here.
The parent element is <clustering>.
Attribute | Type | Default | Description |
---|---|---|---|
replQueueMaxElements |
int |
1000 | If useReplQueue is set to true, this attribute can be used to trigger flushing of the queue when it reaches a specific threshold. (Javadoc) |
useReplQueue |
boolean |
false | If true, this forces all async communications to be queued up and sent out periodically as a batch. (Javadoc) |
asyncMarshalling |
boolean |
false | If true, asynchronous marshalling is enabled which means that caller can return even quicker, but it can suffer from reordering of operations. You can find more information here (Javadoc) |
replQueueInterval |
long |
5000 | If useReplQueue is set to true, this attribute controls how often the asynchronous thread used to flush the replication queue runs. This should be a positive integer which represents thread wakeup time in milliseconds. (Javadoc) |
Configuration for the executor service used to emit notifications to
asynchronous listeners.
The parent element is <global>. The only child element is <properties>.
Attribute | Type | Default | Description |
---|---|---|---|
factory |
string |
org.infinispan.executors.DefaultExecutorFactory | Fully qualified class name of the ExecutorFactory to use. Must implement org.infinispan.executors.ExecutorFactory (Javadoc) |
Property | Description |
---|---|
maxThreads | Maximum number of threads for this executor. Default values can be found here |
threadNamePrefix | Thread name prefix for threads created by this executor. Default values can be found here |
Configuration for the executor service used for asynchronous work
on the Transport, including asynchronous marshalling and Cache 'async operations' such as Cache.putAsync().
The parent element is <global>. The only child element is <properties>.
Attribute | Type | Default | Description |
---|---|---|---|
factory |
string |
org.infinispan.executors.DefaultExecutorFactory | Fully qualified class name of the ExecutorFactory to use. Must implement org.infinispan.executors.ExecutorFactory (Javadoc) |
Property | Description |
---|---|
maxThreads | Maximum number of threads for this executor. Default values can be found here |
threadNamePrefix | Thread name prefix for threads created by this executor. Default values can be found here |
Defines clustered characteristics of the cache.
The parent element is <default>. Child elements are <sync>, <l1>, <stateRetrieval>, <async>, <hash>.
Attribute | Type | Default | Description |
---|---|---|---|
mode |
string |
LOCAL | Cache mode. For distribution, set mode to either 'd', 'dist' or 'distribution'. For replication, use either 'r', 'repl' or 'replication'. Finally, for invalidation, 'i', 'inv' or 'invalidation'. (Javadoc) |
Configures custom interceptors to be added to the cache.
The parent element is <default>. The only child element is <interceptor>.
This element configures deadlock detection.
The parent element is <default>.
Attribute | Type | Default | Description |
---|---|---|---|
enabled |
boolean |
false | Toggle to enable/disable deadlock detection (Javadoc) |
spinDuration |
long |
100 | Time period that determines how often is lock acquisition attempted within maximum time allowed to acquire a particular lock (Javadoc) |
Configures the default cache which can be retrieved via CacheManager.getCache().
These default settings are also used as a starting point when configuring namedCaches,
since the default settings are inherited by any named cache.
The parent element is <infinispan>. Child elements are <transaction>, <invocationBatching>, <loaders>, <clustering>, <lazyDeserialization>, <deadlockDetection>, <eviction>, <customInterceptors>, <unsafe>, <jmxStatistics>, <locking>, <indexing>, <expiration>.
Attribute | Type | Default | Description |
---|---|---|---|
name |
string |
null | Only used with the namedCache element, this attribute specifies the name of the cache. Can be any String, but must be unique in a given configuration. (Javadoc) |
This element controls the eviction settings for the cache.
The parent element is <default>.
Attribute | Type | Default | Description |
---|---|---|---|
threadPolicy |
evictionThreadPolicy * (PIGGYBACK|DEFAULT) |
DEFAULT | Threading policy for eviction. (Javadoc) |
wakeUpInterval |
long |
5000 | Interval between subsequent eviction runs, in milliseconds. If you wish to disable the periodic eviction process altogether, set wakeupInterval to -1. (Javadoc) |
strategy |
evictionStrategy * (NONE|UNORDERED|FIFO|LRU|LIRS) |
NONE | Eviction strategy. Available options are 'UNORDERED', 'FIFO', 'LRU' and 'NONE' (to disable eviction). (Javadoc) |
maxEntries |
int |
-1 | Maximum number of entries in a cache instance. If selected value is not a power of two the actual value will default to the least power of two larger than selected value. -1 means no limit. (Javadoc) |
Configuration for the scheduled executor service used to
periodically run eviction cleanup tasks.
The parent element is <global>. The only child element is <properties>.
Attribute | Type | Default | Description |
---|---|---|---|
factory |
string |
org.infinispan.executors.DefaultScheduledExecutorFactory | Fully qualified class name of the ScheduledExecutorFactory to use. Must implement org.infinispan.executors.ScheduledExecutorFactory (Javadoc) |
Property | Description |
---|---|
maxThreads | Maximum number of threads for this executor. Default values can be found here |
threadNamePrefix | Thread name prefix for threads created by this executor. Default values can be found here |
This element controls the default expiration settings for entries in the cache.
The parent element is <default>.
Attribute | Type | Default | Description |
---|---|---|---|
lifespan |
long |
-1 | Maximum lifespan of a cache entry, after which the entry is expired cluster-wide, in milliseconds. -1 means the entries never expire.
Note that this can be overriden on a per-entry bassi by using the Cache API. (Javadoc) |
maxIdle |
long |
-1 | Maximum idle time a cache entry will be maintained in the cache, in milliseconds. If the idle time
is exceeded, the entry will be expired cluster-wide. -1 means the entries never expire.
Note that this can be overriden on a per-entry bassi by using the Cache API. (Javadoc) |
Defines global settings shared among all cache instances created by a single
CacheManager.
The parent element is <infinispan>. Child elements are <globalJmxStatistics>, <replicationQueueScheduledExecutor>, <transport>, <asyncTransportExecutor>, <serialization>, <shutdown>, <evictionScheduledExecutor>, <asyncListenerExecutor>.
This element specifies whether global statistics are gathered and
reported via JMX for all caches under this cache manager.
The parent element is <global>.
Attribute | Type | Default | Description |
---|---|---|---|
jmxDomain |
string |
infinispan | JMX domain name where all relevant JMX exposed objects will be bound (Javadoc) |
mBeanServerLookup |
string |
org.infinispan.jmx.PlatformMBeanServerLookup | Fully qualified name of class that will attempt to locate a JMX MBean server to bind to (Javadoc) |
enabled |
boolean |
false | Toggle to enable/disable global statistics being exported via JMX. (Javadoc) |
allowDuplicateDomains |
boolean |
false | If true, multiple cache manager instances could be configured under the same configured JMX domain. Each cache manager will in practice use a different JMX domain that has been calculated based on the configured one by adding an incrementing index to it. (Javadoc) |
Allows fine-tuning of rehashing characteristics. Only used with 'distributed'
cache mode, and otherwise ignored.
The parent element is <clustering>.
Attribute | Type | Default | Description |
---|---|---|---|
class |
string |
org.infinispan.distribution.DefaultConsistentHash | Fully qualified name of class providing consistent hash algorithm (Javadoc) |
numOwners |
int |
2 | Number of cluster-wide replicas for each cache entry. (Javadoc) |
rehashWait |
long |
60000 | Future flag. Currenly unused. (Javadoc) |
rehashRpcTimeout |
long |
600000 | Rehashing timeout (Javadoc) |
rehashEnabled |
boolean |
true | If false, no rebalancing or rehashing will take place when a new node joins the cluster or a node leaves. (Javadoc) |
Configures indexing of entries in the cache for searching. Note that infinispan-query.jar and its dependencies needs to be available if this option is to be used.
The parent element is <default>.
Attribute | Type | Default | Description |
---|---|---|---|
indexLocalOnly |
boolean |
false | If true, only index changes made locally, ignoring remote changes. This is useful if indexes are shared across a cluster to prevent redundant indexing of updates. (Javadoc) |
enabled |
boolean |
false | If enabled, entries will be indexed when they are added to the cache. Indexes will be updated as entries change or are removed. (Javadoc) |
The root element of an Infinispan configuration. This element can be empty for sensible defaults throughout, however that would only give you the most basic of local, non-clustered caches.
Child elements are <global>, <default>.
This element allows you configure and inject a custom interceptor.
This tag may appear multiple times.
The parent element is <customInterceptors>. The only child element is <properties>.
Attribute | Type | Default | Description |
---|---|---|---|
index |
int |
-1 | A position at which to place this interceptor in the chain, with 0 being the first position. Note that this attribute is mutually exclusive with 'position', 'before' and 'after'. (Javadoc) |
position |
position * (FIRST|LAST) |
null | A position at which to place this interceptor in the chain. FIRST is the first interceptor encountered when an invocation is made on the cache, LAST is the last interceptor before the call is passed on to the data structure. Note that this attribute is mutually exclusive with 'before', 'after' and 'index'. (Javadoc) |
class |
string |
null | Fully qualified interceptor class name which must extend org.infinispan.interceptors.base.CommandInterceptor. (Javadoc) |
after |
string |
null | Will place the new interceptor directly after the instance of the named interceptor which is specified via its fully qualified class name. Note that this attribute is mutually exclusive with 'position', 'before' and 'index'. (Javadoc) |
before |
string |
null | Will place the new interceptor directly before the instance of the named interceptor which is specified via its fully qualified class name.. Note that this attribute is mutually exclusive with 'position', 'after' and 'index'. (Javadoc) |
Defines whether invocation batching is allowed in this cache instance, and sets up internals accordingly to allow use of this API.
The parent element is <default>.
Attribute | Type | Default | Description |
---|---|---|---|
enabled |
boolean |
false | Toggle switch (Javadoc) |
This element specifies whether cache statistics are gathered and reported
via JMX.
The parent element is <default>.
Attribute | Type | Default | Description |
---|---|---|---|
enabled |
boolean |
false | Toggle switch (Javadoc) |
This element configures the L1 cache behavior in 'distributed' caches instances.
In any other cache modes, this element is ignored.
The parent element is <clustering>.
Attribute | Type | Default | Description |
---|---|---|---|
onRehash |
boolean |
true | If true, entries removed due to a rehash will be moved to L1 rather than being removed altogether. (Javadoc) |
lifespan |
long |
600000 | Maximum lifespan of an entry placed in the L1 cache. (Javadoc) |
enabled |
boolean |
true | Toggle to enable/disable L1 cache. (Javadoc) |
A mechanism by which serialization and deserialization of objects is
deferred till the point in time in which they are used and needed. This typically means that any
deserialization happens using the thread context class loader of the invocation that requires
deserialization, and is an effective mechanism to provide classloader isolation.
The parent element is <default>.
Attribute | Type | Default | Description |
---|---|---|---|
enabled |
boolean |
false | Toggle switch (Javadoc) |
Responsible for loading/storing cache data from/to an external source.
The parent element is <loaders>. Child elements are <async>, <properties>, <singletonStore>.
Attribute | Type | Default | Description |
---|---|---|---|
class |
string |
null | Fully qualified name of a cache loader class that must implement org.infinispan.loaders.CacheLoader interface. (Javadoc) |
purgeOnStartup |
boolean |
false | If true, purges this cache store when it starts up. (Javadoc) |
ignoreModifications |
boolean |
false | If true, any operation that modifies the cache (put, remove, clear, store...etc) won't be applied to the cache store. This means that the cache store could become out of sync with the cache. (Javadoc) |
purgerThreads |
int |
1 | The number of threads to use when purging asynchronously. (Javadoc) |
purgeSynchronously |
boolean |
false | If true, CacheStore#purgeExpired() call will be done synchronously (Javadoc) |
fetchPersistentState |
boolean |
false | If true, fetch persistent state when joining a cluster. If multiple cache stores are chained, only one of them can have this property enabled. Persistent state transfer with a shared cache store does not make sense, as the same persistent store that provides the data will just end up receiving it. Therefore, if a shared cache store is used, the cache will not allow a persistent state transfer even if a cache store has this property set to true. Finally, setting it to true only makes sense if in a clustered environment, and only 'replication' and 'invalidation' cluster modes are supported. (Javadoc) |
Holds the configuration for cache loaders and stores.
The parent element is <default>. The only child element is <loader>.
Attribute | Type | Default | Description |
---|---|---|---|
passivation |
boolean |
false | If true, data is only written to the cache store when it is evicted from memory,
a phenomenon known as 'passivation'. Next time the data is requested, it will be 'activated' which
means that data will be brought back to memory and removed from the persistent store. This gives you
the ability to 'overflow' to disk, similar to swapping in an operating system.
If false, the cache store contains a copy of the contents in memory, so writes to cache result in cache store writes. This essentially gives you a 'write-through' configuration. (Javadoc) |
preload |
boolean |
false | If true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. (Javadoc) |
shared |
boolean |
false | This setting should be set to true when multiple cache instances share the same cache store
(e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared
database.) Setting this to true avoids multiple cache instances writing the same modification multiple
times. If enabled, only the node where the modification originated will write to the cache store.
If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store. Note that this could be useful if each individual node has its own cache store - perhaps local on-disk. (Javadoc) |
Defines the local, in-VM locking and concurrency characteristics of the cache.
The parent element is <default>.
Attribute | Type | Default | Description |
---|---|---|---|
isolationLevel |
isolationLevel * (NONE|SERIALIZABLE|REPEATABLE_READ|READ_COMMITTED|READ_UNCOMMITTED) |
READ_COMMITTED | Cache isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation levels. See http://en.wikipedia.org/wiki/Isolation_level for a discussion on isolation levels. (Javadoc) |
lockAcquisitionTimeout |
long |
10000 | Maximum time to attempt a particular lock acquisition (Javadoc) |
writeSkewCheck |
boolean |
false | This setting is only applicable in the case of REPEATABLE_READ. When write skew check is set to false, if the writer at commit time discovers that the working entry and the underlying entry have different versions, the working entry will overwrite the underlying entry. If true, such version conflict - known as a write-skew - will throw an Exception. (Javadoc) |
concurrencyLevel |
int |
32 | Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interating with Infinispan. Similar to the concurrencyLevel tuning parameter seen in the JDK's ConcurrentHashMap. (Javadoc) |
useLockStriping |
boolean |
true | If true, a pool of shared locks is maintained for all entries that need to be locked. Otherwise, a lock is created per entry in the cache. Lock striping helps control memory footprint but may reduce concurrency in the system. (Javadoc) |
Configuration for the scheduled executor service used to
periodically flush replication queues, used if asynchronous clustering is enabled along with useReplQueue being
set to true.
The parent element is <global>. The only child element is <properties>.
Attribute | Type | Default | Description |
---|---|---|---|
factory |
string |
org.infinispan.executors.DefaultScheduledExecutorFactory | Fully qualified class name of the ScheduledExecutorFactory to use. Must implement org.infinispan.executors.ScheduledExecutorFactory (Javadoc) |
Property | Description |
---|---|
maxThreads | Maximum number of threads for this executor. Default values can be found here |
threadNamePrefix | Thread name prefix for threads created by this executor. Default values can be found here |
Serialization and marshalling settings.
The parent element is <global>.
Attribute | Type | Default | Description |
---|---|---|---|
version |
string |
4.1 | Largest allowable version to use when marshalling internal state. Set this to the lowest version cache instance in your cluster to ensure compatibility of communications. However, setting this too low will mean you lose out on the benefit of improvements in newer versions of the marshaller. (Javadoc) |
marshallerClass |
string |
org.infinispan.marshall.VersionAwareMarshaller | Fully qualified name of the marshaller to use. It must implement org.infinispan.marshall.StreamingMarshaller. (Javadoc) |
This element specifies behavior when the JVM running the cache instance shuts
down.
The parent element is <global>.
Attribute | Type | Default | Description |
---|---|---|---|
hookBehavior |
shutdownHookBehavior * (DEFAULT|REGISTER|DONT_REGISTER) |
DEFAULT | Behavior of the JVM shutdown hook registered by the cache. The options available are: DEFAULT - A shutdown hook is registered even if no MBean server (apart from the JDK default) is detected. REGISTER - Forces the cache to register a shutdown hook even if an MBean server is detected. DONT_REGISTER - Forces the cache NOT to register a shutdown hook, even if no MBean server is detected. (Javadoc) |
SingletonStore is a delegating cache store used for situations when only one
instance in a cluster should interact with the underlying store. The coordinator of the cluster will be responsible for
the underlying CacheStore. SingletonStore is a simply facade to a real CacheStore implementation. It always
delegates reads to the real CacheStore.
The parent element is <loader>.
Attribute | Type | Default | Description |
---|---|---|---|
pushStateTimeout |
long |
10000 | If pushStateWhenCoordinator is true, this property sets the maximum number of milliseconds that the process of pushing the in-memory state to the underlying cache loader should take. (Javadoc) |
enabled |
boolean |
false | If true, the singleton store cache store is enabled. (Javadoc) |
pushStateWhenCoordinator |
boolean |
true | If true, when a node becomes the coordinator, it will transfer in-memory state to the underlying cache store. This can be very useful in situations where the coordinator crashes and there's a gap in time until the new coordinator is elected. (Javadoc) |
Configures how state is retrieved when a new cache joins the cluster. This
element is only used with invalidation and replication clustered modes.
The parent element is <clustering>.
Attribute | Type | Default | Description |
---|---|---|---|
retryWaitTimeIncreaseFactor |
int |
2 | Wait time increase factor over successive state retrieval backoffs (Javadoc) |
alwaysProvideInMemoryState |
boolean |
false | If true, this will allow the cache to provide in-memory state to a neighbor, even if the cache is not configured to fetch state from its neighbors (fetchInMemoryState is false). (Javadoc) |
initialRetryWaitTime |
long |
500 | Initial wait time when backing off before retrying state transfer retrieval (Javadoc) |
timeout |
long |
10000 | This is the maximum amount of time - in milliseconds - to wait for state from neighboring caches, before throwing an exception and aborting startup. (Javadoc) |
fetchInMemoryState |
boolean |
false | If true, this will cause the cache to ask neighboring caches for state when it starts up, so the cache starts 'warm', although it will impact startup time. (Javadoc) |
numRetries |
int |
5 | Number of state retrieval retries before giving up and aborting startup. (Javadoc) |
If this element is present, all communications are synchronous, in that whenever a
thread sends a message sent over the wire, it blocks until it receives an acknowledgement from the
recipient. This element is mutually exclusive with the
Characteristics of this can be tuned here.
The parent element is <clustering>.
Attribute | Type | Default | Description |
---|---|---|---|
replTimeout |
long |
15000 | This is the timeout used to wait for an acknowledgement when making a remote call, after which the call is aborted and an exception is thrown. (Javadoc) |
Defines transactional (JTA) characteristics of the cache.
The parent element is <default>.
Attribute | Type | Default | Description |
---|---|---|---|
syncRollbackPhase |
boolean |
false | If true, the cluster-wide rollback phase in two-phase commit (2PC) transactions will be synchronous, so Infinispan will wait for responses from all nodes to which the rollback was sent. Otherwise, the rollback phase will be asynchronous. Keeping it as false improves performance of 2PC transactions. (Javadoc) |
useEagerLocking |
boolean |
false | When eager locking is set to true, whenever a lock on key is required, cluster-wide locks will be acquired at the same time as local, in-VM locks. If false, cluster-wide locks are only acquired during the prepare phase in the two-phase commit protocol. Note that this setting is implicit and so it's indiscriminate. Alternatively, you can keep this setting as false and instead do eager locking explicitly on a per invocation basis by calling AdvancedCache.lock(Object). (Javadoc) |
transactionManagerLookupClass |
string |
org.infinispan.transaction.lookup.GenericTransactionManagerLookup | Fully qualified class name of a class that looks up a reference to a {@link javax.transaction.TransactionManager}. The default provided is capable of locating the default TransactionManager in most popular Java EE systems, using a JNDI lookup. (Javadoc) |
syncCommitPhase |
boolean |
false | If true, the cluster-wide commit phase in two-phase commit (2PC) transactions will be synchronous, so Infinispan will wait for responses from all nodes to which the commit was sent. Otherwise, the commit phase will be asynchronous. Keeping it as false improves performance of 2PC transactions, since any remote failures are trapped during the prepare phase anyway and appropriate rollbacks are issued. (Javadoc) |
This element configures the transport used for network communications across the
cluster.
The parent element is <global>. The only child element is <properties>.
Attribute | Type | Default | Description |
---|---|---|---|
clusterName |
string |
Infinispan-Cluster | This defines the name of the cluster. Nodes only connect to clusters sharing the same name. (Javadoc) |
distributedSyncTimeout |
long |
60000 | Cluster-wide synchronization timeout for locks. Used to coordinate changes in cluster membership. (Javadoc) |
transportClass |
string |
org.infinispan.remoting.transport.jgroups.JGroupsTransport | Fully qualified name of a class that represents a network transport. Must implement org.infinispan.remoting.transport.Transport (Javadoc) |
nodeName |
string |
null | Name of the current node. This is a friendly name to make logs, etc. make more sense. Defaults to a combination of host name and a random number (to differentiate multiple nodes on the same host) (Javadoc) |
Allows you to tune various unsafe or non-standard characteristics. Certain operations
such as Cache.put() that are supposed to return the previous value associated with the specified key according
to the java.util.Map contract will not fulfill this contract if unsafe toggle is turned on. Use with care.
See details at http://www.jboss.org/community/wiki/infinispantechnicalfaqs
The parent element is <default>.
Attribute | Type | Default | Description |
---|---|---|---|
unreliableReturnValues |
boolean |
false | Toggle to enable/disable return value fetching (Javadoc) |