urn:infinispan:config:12.1

infinispan

Defines the configuration for Infinispan, for the cache manager configuration, for the default cache, and for named caches.

jgroups?

Defines JGroups stacks.

Defines JGroups transport stacks.
NameTypeDefaultDescription
transportstringorg.infinispan.remoting.transport.jgroups.JGroupsTransportClass that represents a network transport. Must implement org.infinispan.remoting.transport.Transport.

stack-file*

Defines an individual JGroups stack, pointing to the file containing its definition.
NameTypeDefaultDescription
namestringName of the stack, to be referenced by transport's stack attribute.
pathstringPath of JGroups configuration file containing stack definition.

stack*

NameTypeDefaultDescription
namestringName of the stack, to be referenced by transport's stack attribute.
extendsstringThe base stack to extend.

remote-sites?

Defines the relay configuration.

NameTypeDefaultDescription
default-stackstring

remote-site

NameTypeDefaultDescription
namestring
stackstring

ABP

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
resend_intervalstringInterval (in ms) at which a sent msg is resent
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

ASYM_ENCRYPT

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
asym_algorithmstringCipher engine transformation for asymmetric algorithm. Default is RSA
asym_keylengthstringInitial public/private key length. Default is 2048
change_key_on_coord_leavestringChange the secret group key when the coordinator changes. If enabled, this will take place even if change_key_on_leave is disabled.
change_key_on_leavestringWhen a node leaves, change the secret group key, preventing old members from eavesdropping
cipher_pool_sizestringNumber of ciphers in the pool to parallelize encrypt and decrypt requests
encrypt_entire_messagestringIf true, the entire message (including payload and headers) is encrypted, else only the payload
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
key_map_max_sizestringMax number of keys in key_map
levelstringlogger level (see javadocs)
providerstringCryptographic Service Provider
sign_msgsstringIf true, all messages are digitally signed by adding an encrypted checksum of the encrypted message to the header. Ignored if encrypt_entire_message is false
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
sym_algorithmstringCipher engine transformation for symmetric algorithm. Default is AES
sym_iv_lengthstringInitialization vector length for symmetric encryption. A value must be specified here if the configured sym_algorithm requires an initialization vector.
sym_keylengthstringInitial key length for matching symmetric algorithm. Default is 128
use_adlerstringWhen sign_msgs is true, by default CRC32 is used to create the checksum. If use_adler is true, Adler32 will be used
use_external_key_exchangestringIf true, a separate KeyExchange protocol (somewhere in the stack) is used to fetch the shared secret key. If false, the default (built-in) key exchange protocol will be used.

AUTH

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
auth_classstringThe fully qualified name of the class implementing the AuthToken interface
auth_coordstringDo join or merge responses from the coordinator also need to be authenticated
auth_valuestring
cert_aliasstring
cert_passwordstring
cipher_typestring
client_passwordstring
client_principal_namestring
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
fixed_members_seperatorstring
fixed_members_valuestring
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
keystore_passwordstring
keystore_pathstring
keystore_typestring
levelstringlogger level (see javadocs)
match_ip_addressstring
match_logical_namestring
match_stringstring
service_principal_namestring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
token_hashstring

BARRIER

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
flush_timeoutstringMax time (in ms) to wait until the threads which passed the barrier before it was closed have completed. If this time elapses, an exception will be thrown and state transfer will fail. 0 = wait forever
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_close_timestringMax time barrier can be closed. Default is 60000 ms
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

BPING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
bind_portstringPort for discovery packets
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
deststringTarget address for broadcasts. This should be restricted to the local subnet, e.g. 192.168.1.255
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.jboss.org/browse/JGRP-2317)
port_rangestringSends discovery packets to ports 8555 to (8555+port_range)
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results

CENTRAL_EXECUTOR

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bypass_bundlingstringbypasses message bundling if set
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
num_backupsstringNumber of backups to the coordinator. Queue State gets replicated to these nodes as well
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

CENTRAL_LOCK

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bypass_bundlingstringbypasses message bundling if set
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
lock_striping_sizestringNumber of locks to be used for lock striping (for synchronized access to the server_lock entries)
num_backupsstringNumber of backups to the coordinator. Server locks get replicated to these nodes as well
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_thread_id_for_lock_ownerstringBy default, a lock owner is address:thread-id. If false, we only use the node's address. See https://issues.jboss.org/browse/JGRP-1886 for details

CENTRAL_LOCK2

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bypass_bundlingstringbypasses message bundling if set
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
lock_reconciliation_timeoutstringMax time (im ms) to wait for lock info responses from members in a lock reconciliation phase
lock_striping_sizestringNumber of locks to be used for lock striping (for synchronized access to the server_lock entries)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_thread_id_for_lock_ownerstringBy default, a lock owner is address:thread-id. If false, we only use the node's address. See https://issues.jboss.org/browse/JGRP-1886 for details

CLEAR_FLAGS

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
oobstringclear OOB flags
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

COMPRESS

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
compression_levelstringCompression level (from java.util.zip.Deflater) (0=no compression, 1=best speed, 9=best compression). Default is 9
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
min_sizestringMinimal payload size of a message (in bytes) for compression to kick in. Default is 500 bytes
pool_sizestringNumber of inflaters/deflaters for concurrent processing. Default is 2
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

COUNTER

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bypass_bundlingstringBypasses message bundling if true
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
num_backupsstringNumber of backup coordinators. Modifications are asynchronously sent to all backup coordinators
reconciliation_timeoutstringNumber of milliseconds to wait for reconciliation responses from all current members
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
timeoutstringRequest timeouts (in ms). If the timeout elapses, a Timeout (runtime) exception will be thrown

DAISYCHAIN

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
loopbackstringLoop back multicast messages
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

DELAY

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
constant_delaystringKeep the delay constant. By default delay time randoms between 0 and upper bound
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
in_delaystringUpper bound of number of milliseconds to delay passing a message up the stack (exclusive)
in_delay_nanosstringNumber of nanoseconds to delay passing a message up the stack
levelstringlogger level (see javadocs)
out_delaystringUpper bound number of milliseconds to delay passing a message down the stack (exclusive)
out_delay_nanosstringNumber of nanoseconds to delay passing a message down the stack
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

DELIVERY_TIME

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

DETECT_LOOPBACKS

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
print_to_stdoutstringPrints to stdout
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

DH_KEY_EXCHANGE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
secret_key_algorithmstringThe type of secret key to be sent up the stack (converted from DH). Should be the same as the algorithm part of ASYM_ENCRYPT.sym_algorithm if ASYM_ENCRYPT is used
secret_key_lengthstringThe length of the secret key (in bits) to be sent up the stack. AES requires 128 bits. Should be the same as ASYM_ENCRYPT.sym_keylength if ASYM_ENCRYPT is used.
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
timeoutstringMax time (in ms) that a FETCH_SECRET_KEY down event will be ignored (if an existing request is in progress) until a new request for the secret key is sent to the keyserver

DISCARD

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
discard_allstringDrops all messages (up or down) if true
downstring
drop_down_multicastsstringNumber of subsequent multicasts to drop in the down direction
drop_down_unicastsstringNumber of subsequent unicasts to drop in the down direction
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
excludeItselfstringIf discard_all is true, still sends messages to self
guistringuse a GUI or not
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
upstring

DISCARD_PAYLOAD

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
duplicatestring
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
seqnostring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

DROP

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

DUPL

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
copy_multicast_msgsstringWhether or not to copy multicast messages
copy_unicast_msgsstringWhether or not to copy unicast messages
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
incoming_copiesstringNumber of copies of each incoming message (0=no copies)
levelstringlogger level (see javadocs)
outgoing_copiesstringNumber of copies of each outgoing message (0=no copies)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

EXAMPLE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

FD

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_triesstringNumber of times to send an are-you-alive message
msg_counts_as_heartbeatstringTreat messages received from members as heartbeats. Note that this means we're updating a value in a hashmap every time a message is passing up the stack through FD, which is costly.
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
timeoutstringTimeout to suspect a node P if neither a heartbeat nor data were received from P.

FD_ALL

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
intervalstringInterval at which a HEARTBEAT is sent to the cluster
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
timeoutstringTimeout after which a node P is suspected if neither a heartbeat nor data were received from P
timeout_check_intervalstringInterval at which the HEARTBEAT timeouts are checked
use_time_servicestringUses TimeService to get the current time rather than calling System.nanoTime().

FD_ALL2

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
intervalstringInterval at which a HEARTBEAT is sent to the cluster
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
timeoutstringTimeout after which a node P is suspected if neither a heartbeat nor data were received from P

FD_ALL3

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
intervalstringInterval at which a HEARTBEAT is sent to the cluster
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
timeoutstringTimeout after which a node P is suspected if neither a heartbeat nor data were received from P

FD_HOST

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
check_timeoutstringMax time (in ms) that a liveness check for a single host can take
cmdstringThe command used to check a given host for liveness. Example: "ping". If null, InetAddress.isReachable() will be used by default
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
intervalstringThe interval (in ms) at which the hosts are checked for liveness
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
timeoutstringMax time (in ms) after which a host is suspected if it failed all liveness checks
use_time_servicestringUses TimeService to get the current time rather than System.currentTimeMillis. Might get removed soon, don't use !

FD_SOCK

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringThe NIC on which the ServerSocket should listen on. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL and NON_LOOPBACK
cache_max_agestringMax age (in ms) an element marked as removed has to have until it is removed
cache_max_elementsstringMax number of elements in the cache until deleted elements are removed
client_bind_portstringStart port for client socket. Default value of 0 picks a random port
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
external_addrstringUse "external_addr" if you have hosts on different networks, behind firewalls. On each firewall, set up a port forwarding rule (sometimes called "virtual server") to the local IP (e.g. 192.168.1.100) of the host then on each host, set "external_addr" TCP transport parameter to the external (public IP) address of the firewall.
external_portstringUsed to map the internal port (bind_port) to an external port. Only used if > 0
get_cache_timeoutstringTimeout for getting socket cache from coordinator
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
keep_alivestringWhether to use KEEP_ALIVE on the ping socket or not. Default is true
levelstringlogger level (see javadocs)
num_triesstringNumber of attempts coordinator is solicited for socket cache until we give up
port_rangestringNumber of ports to probe for start_port and client_bind_port
sock_conn_timeoutstringMax time in millis to wait for ping Socket.connect() to return
start_portstringStart port for server socket. Default value of 0 picks a random port
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
suspect_msg_intervalstringInterval for broadcasting suspect messages

FILE_PING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
info_writer_max_writes_after_viewstringThe max number of times my own information should be written to the storage after a view change
info_writer_sleep_timestringInterval (in ms) at which the info writer should kick in
levelstringlogger level (see javadocs)
locationstringThe absolute path of the shared file
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.jboss.org/browse/JGRP-2317)
register_shutdown_hookstringIf set, a shutdown hook is registered with the JVM to remove the local address from the store. Default is true
remove_all_data_on_view_changestringIf true, on a view change, the new coordinator removes all data except its own
remove_old_coords_on_view_changestringIf true, on a view change, the new coordinator removes files from old coordinators
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
update_store_on_view_changestringChange the backend store when the view changes. If off, then the file is only changed on joins, but not on leaves. Enabling this will increase traffic to the backend store.
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results
write_data_on_findstringWhen a non-initial discovery is run, and InfoWriter is not running, write the data to disk (if true). JIRA: https://issues.jboss.org/browse/JGRP-2288

FORK

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
configstringPoints to an XML file defining the fork-stacks, which will be created at initialization. Ignored if null
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
process_state_eventsstringIf enabled, state transfer events will be processed, else they will be passed up
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

fork-stacks

FORWARD_TO_COORD

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

FRAG

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
frag_sizestringThe max number of bytes in a message. Larger messages will be fragmented. Default is 8192 bytes
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

FRAG2

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
frag_sizestringThe max number of bytes in a message. Larger messages will be fragmented
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

FRAG3

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
frag_sizestringThe max number of bytes in a message. Larger messages will be fragmented
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

GOOGLE_PING

NameTypeDefaultDescription
access_keystringThe access key to AWS (S3)
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
hoststringThe name of the AWS server
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
info_writer_max_writes_after_viewstringThe max number of times my own information should be written to the storage after a view change
info_writer_sleep_timestringInterval (in ms) at which the info writer should kick in
levelstringlogger level (see javadocs)
locationstringThe absolute path of the shared file
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.jboss.org/browse/JGRP-2317)
portstringThe port at which AWS is listening
pre_signed_delete_urlstringWhen non-null, we use this pre-signed URL for DELETEs
pre_signed_put_urlstringWhen non-null, we use this pre-signed URL for PUTs
prefixstringWhen non-null, we set location to prefix-UUID
register_shutdown_hookstringIf set, a shutdown hook is registered with the JVM to remove the local address from the store. Default is true
remove_all_data_on_view_changestringIf true, on a view change, the new coordinator removes all data except its own
remove_old_coords_on_view_changestringIf true, on a view change, the new coordinator removes files from old coordinators
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
secret_access_keystringThe secret access key to AWS (S3)
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
skip_bucket_existence_checkstringSkip the code which checks if a bucket exists in initialization
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
update_store_on_view_changestringChange the backend store when the view changes. If off, then the file is only changed on joins, but not on leaves. Enabling this will increase traffic to the backend store.
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results
use_sslstringWhether or not to use SSL to connect to host:port
write_data_on_findstringWhen a non-initial discovery is run, and InfoWriter is not running, write the data to disk (if true). JIRA: https://issues.jboss.org/browse/JGRP-2288

HDRS

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
print_downstringEnables printing of down messages
print_upstringEnables printing of up (received) messages
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

INJECT_VIEW

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

JDBC_PING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
clear_sqlstringSQL to clear the table
connection_driverstringThe JDBC connection driver name
connection_passwordstringThe JDBC connection password
connection_urlstringThe JDBC connection URL
connection_usernamestringThe JDBC connection username
contains_sqlstringFinds a given entry by its address and cluster name, used to implement a contains()
datasource_jndi_namestringTo use a DataSource registered in JNDI, specify the JNDI name here. This is an alternative to all connection_* configuration options: if this property is not empty, then all connection relatedproperties must be empty.
delete_single_sqlstringSQL used to delete a row. Customizable, but keep the order of parameters and pick compatible types: 1)Own Address, as String 2)Cluster name, as String
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
info_writer_max_writes_after_viewstringThe max number of times my own information should be written to the storage after a view change
info_writer_sleep_timestringInterval (in ms) at which the info writer should kick in
initialize_sqlstringIf not empty, this SQL statement will be performed at startup.Customize it to create the needed table on those databases which permit table creation attempt without losing data, such as PostgreSQL and MySQL (using IF NOT EXISTS). To allow for creation attempts, errors performing this statement will be loggedbut not considered fatal. To avoid any DDL operation, set this to an empty string.
insert_single_sqlstringSQL used to insert a new row. Customizable, but keep the order of parameters and pick compatible types: 1)Own Address, as String 2)Cluster name, as String 3)Serialized PingData as byte[]
levelstringlogger level (see javadocs)
locationstringThe absolute path of the shared file
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.jboss.org/browse/JGRP-2317)
register_shutdown_hookstringIf set, a shutdown hook is registered with the JVM to remove the local address from the store. Default is true
remove_all_data_on_view_changestringIf true, on a view change, the new coordinator removes all data except its own
remove_old_coords_on_view_changestringIf true, on a view change, the new coordinator removes files from old coordinators
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
select_all_pingdata_sqlstringSQL used to fetch all node's PingData. Customizable, but keep the order of parameters and pick compatible types: only one parameter needed, String compatible, representing the Cluster name. Must return a byte[], the Serialized PingData as it was stored by the insert_single_sql statement. Must select primary keys subsequently for cleanup to work properly
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
update_store_on_view_changestringChange the backend store when the view changes. If off, then the file is only changed on joins, but not on leaves. Enabling this will increase traffic to the backend store.
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results
write_data_on_findstringWhen a non-initial discovery is run, and InfoWriter is not running, write the data to disk (if true). JIRA: https://issues.jboss.org/browse/JGRP-2288

LOCAL_PING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.jboss.org/browse/JGRP-2317)
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results

MAKE_BATCH

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
multicastsstringhandle multicast messages
sleep_timestringTime to sleep (in ms) from the reception of the first message to sending a batch up
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
unicastsstringhandle unicast messages

MERGE3

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
check_intervalstringInterval (in ms) after which we check for view inconsistencies
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_intervalstringInterval (in milliseconds) when the next info message will be sent. A random value is picked from range [1..max_interval]
max_participants_in_mergestringThe max number of merge participants to be involved in a merge. 0 sets this to unlimited.
min_intervalstringMinimum time in ms before sending an info message
only_coords_run_consistency_checkerstringIf true, only coordinators periodically check view consistency, otherwise everybody runs this task (https://issues.jboss.org/browse/JGRP-2092). Might get removed without notice.
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

MFC

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_block_timestringMax time (in ms) to block
max_block_timesstringMax times to block for the listed messages sizes (Message.getLength()). Example: "1000:10,5000:30,10000:500"
max_creditsstringMax number of bytes to send per receiver until an ack must be received to proceed
min_creditsstringComputed as max_credits x min_theshold unless explicitly set
min_thresholdstringThe threshold (as a percentage of max_credits) at which a receiver sends more credits to a sender. Example: if max_credits is 1'000'000, and min_threshold 0.25, then we send ca. 250'000 credits to P once we've got only 250'000 credits left for P (we've received 750'000 bytes from P)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

MFC_NB

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_block_timestringMax time (in ms) to block
max_block_timesstringMax times to block for the listed messages sizes (Message.getLength()). Example: "1000:10,5000:30,10000:500"
max_creditsstringMax number of bytes to send per receiver until an ack must be received to proceed
max_queue_sizestringMax number of bytes of all queued messages for a given destination. If a given destination has no credits left and the message cannot be added to the queue because it is full, then the sender thread will be blocked until there is again space available in the queue, or the protocol is stopped.
min_creditsstringComputed as max_credits x min_theshold unless explicitly set
min_thresholdstringThe threshold (as a percentage of max_credits) at which a receiver sends more credits to a sender. Example: if max_credits is 1'000'000, and min_threshold 0.25, then we send ca. 250'000 credits to P once we've got only 250'000 credits left for P (we've received 750'000 bytes from P)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

MPING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
bind_addrstringBind address for multicast socket. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL and NON_LOOPBACK
bind_interfacestringThe interface (NIC) which should be used by this transport
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
ip_ttlstringTime to live for discovery packets. Default is 8
levelstringlogger level (see javadocs)
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
mcast_addrstringMulticast address to be used for discovery
mcast_portstringMulticast port for discovery packets. Default is 7555
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.jboss.org/browse/JGRP-2317)
receive_interfacesstringList of interfaces to receive multicasts on
receive_on_all_interfacesstringIf true, the transport should use all available interfaces to receive multicast messages
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
send_interfacesstringList of interfaces to send multicasts on
send_on_all_interfacesstringWhether send messages are sent on all interfaces. Default is false
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results

MULTI_PING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.jboss.org/browse/JGRP-2317)
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results

NAMING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
stagger_timeoutstringStagger timeout (in ms). Staggering will be a random timeout in range [0 .. stagger_timeout]
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

PDC

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
cache_dirstringThe absolute path of the directory for the disk cache. The mappings will be stored as individual files in this directory
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

PERF

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
avg_sizestringNumber of samples to maintain for rolling average
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

PING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.jboss.org/browse/JGRP-2317)
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results

RACKSPACE_PING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
apiKeystringRackspace API access key
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
containerstringName of the root container
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
info_writer_max_writes_after_viewstringThe max number of times my own information should be written to the storage after a view change
info_writer_sleep_timestringInterval (in ms) at which the info writer should kick in
levelstringlogger level (see javadocs)
locationstringThe absolute path of the shared file
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.jboss.org/browse/JGRP-2317)
regionstringRackspace region, either UK or US
register_shutdown_hookstringIf set, a shutdown hook is registered with the JVM to remove the local address from the store. Default is true
remove_all_data_on_view_changestringIf true, on a view change, the new coordinator removes all data except its own
remove_old_coords_on_view_changestringIf true, on a view change, the new coordinator removes files from old coordinators
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
update_store_on_view_changestringChange the backend store when the view changes. If off, then the file is only changed on joins, but not on leaves. Enabling this will increase traffic to the backend store.
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results
usernamestringRackspace username
write_data_on_findstringWhen a non-initial discovery is run, and InfoWriter is not running, write the data to disk (if true). JIRA: https://issues.jboss.org/browse/JGRP-2288

RATE_LIMITER

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_bytesstringMax number of bytes to be sent in time_period ms. Blocks the sender if exceeded until a new time period has started
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
time_periodstringNumber of milliseconds during which max_bytes bytes can be sent

RED

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
enabledstringIf false, all messages are passed down. Will be set to false if the bundler returns a queue size of -1
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_thresholdstringThe max threshold (percentage between min_threshold and 1.0) above which all messages are dropped
min_thresholdstringThe min threshold (percentage between 0 and 1.0) below which no message is dropped
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
weight_factorstringThe weight used to compute the average queue size. The higher the value is, the less the current queue size is taken into account. E.g. with 2, 25% of the current queue size and 75% of the old average is taken to compute the new average. In other words: with a high value, the average will take longer to reflect the current queueu size.

RELAY

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bridge_namestringName of the bridge cluster
bridge_propsstringProperties of the bridge cluster (e.g. tcp.xml)
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
present_global_viewsstringDrops views received from below and instead generates global views and passes them up. A global view consists of the local view and the remote view, ordered by view ID. If true, no protocolwhich requires (local) views can sit on top of RELAY
relaystringIf set to false, don't perform relaying. Used e.g. for backup clusters; unidirectional replication from one cluster to another, but not back. Can be changed at runtime
sitestringDescription of the local cluster, e.g. "nyc". This is added to every address, so itshould be short. This is a mandatory property and must be set
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

REVERSE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

RSVP

NameTypeDefaultDescription
ack_on_deliverystringWhen true, we pass the message up to the application and only then send an ack. When false, we send an ack first and only then pass the message up to the application.
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
resend_intervalstringInterval (in milliseconds) at which we resend the RSVP request. Needs to be < timeout. 0 disables it.
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
throw_exception_on_timeoutstringWhether an exception should be thrown when the timeout kicks in, and we haven't yet received all acks. An exception would be thrown all the way up to JChannel.send(). If we use RSVP_NB, this will be ignored.
timeoutstringMax time in milliseconds to block for an RSVP'ed message (0 blocks forever).

S3_PING

NameTypeDefaultDescription
access_keystringThe access key to AWS (S3)
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
hoststringThe name of the AWS server
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
info_writer_max_writes_after_viewstringThe max number of times my own information should be written to the storage after a view change
info_writer_sleep_timestringInterval (in ms) at which the info writer should kick in
levelstringlogger level (see javadocs)
locationstringThe absolute path of the shared file
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.jboss.org/browse/JGRP-2317)
portstringThe port at which AWS is listening
pre_signed_delete_urlstringWhen non-null, we use this pre-signed URL for DELETEs
pre_signed_put_urlstringWhen non-null, we use this pre-signed URL for PUTs
prefixstringWhen non-null, we set location to prefix-UUID
register_shutdown_hookstringIf set, a shutdown hook is registered with the JVM to remove the local address from the store. Default is true
remove_all_data_on_view_changestringIf true, on a view change, the new coordinator removes all data except its own
remove_old_coords_on_view_changestringIf true, on a view change, the new coordinator removes files from old coordinators
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
secret_access_keystringThe secret access key to AWS (S3)
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
skip_bucket_existence_checkstringSkip the code which checks if a bucket exists in initialization
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
update_store_on_view_changestringChange the backend store when the view changes. If off, then the file is only changed on joins, but not on leaves. Enabling this will increase traffic to the backend store.
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results
use_sslstringWhether or not to use SSL to connect to host:port
write_data_on_findstringWhen a non-initial discovery is run, and InfoWriter is not running, write the data to disk (if true). JIRA: https://issues.jboss.org/browse/JGRP-2288

SASL

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
client_callback_handlerstringThe CallbackHandler to use when a node acts as a client (i.e. it is not the coordinator
client_callback_handler_classstring
client_namestringThe name to use when a node is acting as a client (i.e. it is not the coordinator. Will also be used to obtain the subject if using a JAAS login module
client_passwordstringThe password to use when a node is acting as a client (i.e. it is not the coordinator. Will also be used to obtain the subject if using a JAAS login module
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
login_module_namestringThe name of the JAAS login module to use to obtain a subject for creating the SASL client and server (optional). Only required by some SASL mechs (e.g. GSSAPI)
mechstringThe name of the mech to require for authentication. Can be any mech supported by your local SASL provider. The JDK comes standard with CRAM-MD5, DIGEST-MD5, GSSAPI, NTLM
sasl_propsstringProperties specific to the chosen mech
server_callback_handlerstringThe CallbackHandler to use when a node acts as a server (i.e. it is the coordinator
server_callback_handler_classstring
server_namestringThe fully qualified server name
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
timeoutstringHow long to wait (in ms) for a response to a challenge

SEQUENCER

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
delivery_table_max_sizestringSize of the set to store received seqnos (for duplicate checking)
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
flush_forward_tablestringIf true, all messages in the forward-table are sent to the new coord, else thye're dropped (https://issues.jboss.org/browse/JGRP-2268)
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
thresholdstringNumber of acks needed before going from ack-mode to normal mode. 0 disables this, which means that ack-mode is always on

SEQUENCER2

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

SERIALIZE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

SHARED_LOOPBACK

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringThe bind address which should be used by this transport. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL, NON_LOOPBACK, match-interface, match-host, match-address
bind_portstringThe port to which the transport binds. Default of 0 binds to any (ephemeral) port. See also port_range
bundler_capacitystringThe max number of elements in a bundler if the bundler supports size limitations
bundler_num_spinsstringNumber of spins before a real lock is acquired
bundler_typestringThe type of bundler used ("ring-buffer", "transfer-queue" (default), "sender-sends" or "no-bundler") or the fully qualified classname of a Bundler implementation
bundler_wait_strategystringThe wait strategy for a RingBuffer
diag_enable_tcpstringUse a TCP socket to listen for probe requests (ignored if enable_diagnostics is false)
diag_enable_udpstringUse a multicast socket to listen for probe requests (ignored if enable_diagnostics is false)
diagnostics_addrstringMulticast address for diagnostic probing. Used when diag_enable_udp is true
diagnostics_bind_addrstringBind address for diagnostic probing. Used when diag_enable_tcp is true
diagnostics_bind_interfacesstringComma delimited list of interfaces (IP addresses or interface names) that the diagnostics multicast socket should bind to
diagnostics_passcodestringAuthorization passcode for diagnostics. If specified every probe query will be authorized
diagnostics_portstringPort for diagnostic probing. Default is 7500
diagnostics_port_rangestringThe number of ports to be probed for an available port (TCP)
diagnostics_ttlstringTTL of the diagnostics multicast socket
enable_diagnosticsstringSwitch to enable diagnostic probing. Default is true
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
external_addrstringUse "external_addr" if you have hosts on different networks, behind firewalls. On each firewall, set up a port forwarding rule (sometimes called "virtual server") to the local IP (e.g. 192.168.1.100) of the host then on each host, set "external_addr" TCP transport parameter to the external (public IP) address of the firewall.
external_portstringUsed to map the internal port (bind_port) to an external port. Only used if > 0
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
log_discard_msgsstringwhether or not warnings about messages from different groups are logged
log_discard_msgs_versionstringwhether or not warnings about messages from members with a different version are discarded
logical_addr_cache_expirationstringTime (in ms) after which entries in the logical address cache marked as removable can be removed. 0 never removes any entries (not recommended)
logical_addr_cache_max_sizestringMax number of elements in the logical address cache before eviction starts
logical_addr_cache_reaper_intervalstringInterval (in ms) at which the reaper task scans logical_addr_cache and removes entries marked as removable. 0 disables reaping.
loopback_copystringWhether or not to make a copy of a message before looping it back up. Don't use this; might get removed without warning
loopback_separate_threadstringLoop back the message on a separate thread or use the current thread. Don't use this; might get removed without warning
max_bundle_sizestringMaximum number of bytes for messages to be queued until they are sent
message_processing_policystringThe fully qualified name of a class implementing MessageProcessingPolicy
message_processing_policy.max_buffer_sizestringMax number of messages buffered for consumption of the delivery thread in MaxOneThreadPerSender. 0 creates an unbounded buffer
port_rangestringThe range of valid ports: [bind_port .. bind_port+port_range ]. 0 only binds to bind_port and fails if taken
receive_interfacesstringComma delimited list of interfaces (IP addresses or interface names) to receive multicasts on
receive_on_all_interfacesstringIf true, the transport should use all available interfaces to receive multicast messages
spawn_thread_on_full_poolstringWhen an internal message cannot be processed because of a full internal pool, a new thread is created to process the message. Setting this value to false disables this, and the message will be discarded (like regular messages)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
suppress_time_different_cluster_warningsstringTime during which identical warnings about messages from a member from a different cluster will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
suppress_time_different_version_warningsstringTime during which identical warnings about messages from a member with a different version will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
thread_dumps_thresholdstringThe number of times a thread pool needs to be full before a thread dump is logged
thread_naming_patternstringThread naming pattern for threads in this channel. Valid values are "pcl": "p": includes the thread name, e.g. "Incoming thread-1", "UDP ucast receiver", "c": includes the cluster name, e.g. "MyCluster", "l": includes the local address of the current member, e.g. "192.168.5.1:5678"
thread_pool.enabledstringEnable or disable the thread pool
thread_pool.keep_alive_timestringTimeout in milliseconds to remove idle threads from pool
thread_pool.max_threadsstringMaximum thread pool size for the thread pool
thread_pool.min_threadsstringMinimum thread pool size for the thread pool
thread_pool.use_common_fork_join_poolstringIf true, the common fork-join pool will be used; otherwise a custom ForkJoinPool will be created
thread_pool.use_fork_join_poolstringIf enabled, a ForkJoinPool will be used rather than a ThreadPoolExecutor
time_service_intervalstringInterval (in ms) at which the time service updates its timestamp. 0 disables the time service
use_fibersstringCreate fibers (if true) or regular threads (if false). This requires Java 15/Loom. If not present, use_fibers will be set to false and regular threads will be created. Note that the ThreadFactoryneeds to support this (DefaultThreadFactory does)
use_ip_addrsstringUse IP addresses (IpAddressUUID) instead of UUIDs as addresses. This is currently not compatible with RELAY2: disable if RELAY2 is used.
who_has_cache_timeoutstringTimeout (in ms) to determine how long to wait until a request to fetch the physical address for a given logical address will be sent again. Subsequent requests for the same physical address will therefore be spaced at least who_has_cache_timeout ms apart

SHARED_LOOPBACK_PING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.jboss.org/browse/JGRP-2317)
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results

SHUFFLE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
downstringReorder down messages and message batches
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_sizestringmax number of messages before we reorder queued messages and send them up
max_timestringmax time (in millis) before we pass the reordered messages up or down
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
upstringReorder up messages and message batches

SIZE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
min_sizestring
print_msgstring
raw_bufferstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

SNIFF

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
downstringPrint sent messages
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
upstringPrint received messages

SOS

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
cmdstringThe attributes to be fetched. In probe format ('jmx' or 'op' command)
configstringThe configuration file containing all protocols and attributes to be dumped
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
filenamestringFile to which the periodic data is written
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
intervalstringInterval in ms at which the attributes are fetched and written to the file
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

SSL_KEY_EXCHANGE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringBind address for the server or client socket. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL and NON_LOOPBACK
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
keystore_namestringLocation of the keystore
keystore_passwordstringPassword to access the keystore
keystore_typestringThe type of the keystore. Types are listed in http://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html
levelstringlogger level (see javadocs)
portstringThe port at which the key server is listening. If the port is not available, the next port will be probed, up to port+port_range. Used by the key server (server) to create an SSLServerSocket and by clients to connect to the key server.
port_rangestringThe port range to probe
require_client_authenticationstringIf enabled, clients are authenticated as well (not just the server). Set to true to prevent rogue clients to fetch the secret group key (e.g. via man-in-the-middle attacks)
secret_key_algorithmstringThe type of secret key to be sent up the stack (converted from DH). Should be the same as the algorithm part of ASYM_ENCRYPT.sym_algorithm if ASYM_ENCRYPT is used
session_verifier_argstringThe argument to the session verifier
session_verifier_classstringThe fully qualified name of a class implementing SessionVerifier
socket_timeoutstringTimeout (in ms) for a socket read. This applies for example to the initial SSL handshake, e.g. if the client connects to a non-JGroups service accidentally running on the same port
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

STATS

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

STOMP

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringThe bind address which should be used by the server socket. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL and NON_LOOPBACK
endpoint_addrstringIf set, then endpoint will be set to this address
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
exact_destination_matchstringIf set to false, then a destination of /a/b match /a/b/c, a/b/d, a/b/c/d etc
forward_non_client_generated_msgsstringForward received messages which don't have a StompHeader to clients
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
portstringPort on which the STOMP protocol listens for requests
send_infostringIf true, information such as a list of endpoints, or views, will be sent to all clients (via the INFO command). This allows for example intelligent clients to connect to a different server should a connection be closed.
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

SWIFT_PING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
auth_typestringAuthentication type
auth_urlstringAuthentication url
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
containerstringName of the root container
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
info_writer_max_writes_after_viewstringThe max number of times my own information should be written to the storage after a view change
info_writer_sleep_timestringInterval (in ms) at which the info writer should kick in
levelstringlogger level (see javadocs)
locationstringThe absolute path of the shared file
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.jboss.org/browse/JGRP-2317)
passwordstringPassword
register_shutdown_hookstringIf set, a shutdown hook is registered with the JVM to remove the local address from the store. Default is true
remove_all_data_on_view_changestringIf true, on a view change, the new coordinator removes all data except its own
remove_old_coords_on_view_changestringIf true, on a view change, the new coordinator removes files from old coordinators
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
tenantstringOpenstack Keystone tenant name
update_store_on_view_changestringChange the backend store when the view changes. If off, then the file is only changed on joins, but not on leaves. Enabling this will increase traffic to the backend store.
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results
usernamestringUsername
write_data_on_findstringWhen a non-initial discovery is run, and InfoWriter is not running, write the data to disk (if true). JIRA: https://issues.jboss.org/browse/JGRP-2288

SYM_ENCRYPT

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
aliasstringAlias used for recovering the key. Change the default
asym_algorithmstringCipher engine transformation for asymmetric algorithm. Default is RSA
asym_keylengthstringInitial public/private key length. Default is 2048
cipher_pool_sizestringNumber of ciphers in the pool to parallelize encrypt and decrypt requests
encrypt_entire_messagestringIf true, the entire message (including payload and headers) is encrypted, else only the payload
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
key_map_max_sizestringMax number of keys in key_map
key_passwordstringPassword for recovering the key. Change the default
keystore_namestringFile on classpath that contains keystore repository
keystore_typestringThe type of the keystore. Types are listed in http://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html
levelstringlogger level (see javadocs)
providerstringCryptographic Service Provider
sign_msgsstringIf true, all messages are digitally signed by adding an encrypted checksum of the encrypted message to the header. Ignored if encrypt_entire_message is false
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
store_passwordstringPassword used to check the integrity/unlock the keystore. Change the default
sym_algorithmstringCipher engine transformation for symmetric algorithm. Default is AES
sym_iv_lengthstringInitialization vector length for symmetric encryption. A value must be specified here if the configured sym_algorithm requires an initialization vector.
sym_keylengthstringInitial key length for matching symmetric algorithm. Default is 128
use_adlerstringWhen sign_msgs is true, by default CRC32 is used to create the checksum. If use_adler is true, Adler32 will be used

SimpleTCP

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringThe bind address which should be used by this transport. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL, NON_LOOPBACK, match-interface, match-host, match-address
bind_portstringThe port to which the transport binds. Default of 0 binds to any (ephemeral) port. See also port_range
buffered_input_stream_sizestringSize of the buffer of the BufferedInputStream in TcpConnection. A read always tries to read ahead as much data as possible into the buffer. 0: default size
buffered_output_stream_sizestringSize of the buffer of the BufferedOutputStream in TcpConnection. Smaller messages are buffered until this size is exceeded or flush() is called. Bigger messages are sent immediately. 0: default size
bundler_capacitystringThe max number of elements in a bundler if the bundler supports size limitations
bundler_num_spinsstringNumber of spins before a real lock is acquired
bundler_typestringThe type of bundler used ("ring-buffer", "transfer-queue" (default), "sender-sends" or "no-bundler") or the fully qualified classname of a Bundler implementation
bundler_wait_strategystringThe wait strategy for a RingBuffer
diag_enable_tcpstringUse a TCP socket to listen for probe requests (ignored if enable_diagnostics is false)
diag_enable_udpstringUse a multicast socket to listen for probe requests (ignored if enable_diagnostics is false)
diagnostics_addrstringMulticast address for diagnostic probing. Used when diag_enable_udp is true
diagnostics_bind_addrstringBind address for diagnostic probing. Used when diag_enable_tcp is true
diagnostics_bind_interfacesstringComma delimited list of interfaces (IP addresses or interface names) that the diagnostics multicast socket should bind to
diagnostics_passcodestringAuthorization passcode for diagnostics. If specified every probe query will be authorized
diagnostics_portstringPort for diagnostic probing. Default is 7500
diagnostics_port_rangestringThe number of ports to be probed for an available port (TCP)
diagnostics_ttlstringTTL of the diagnostics multicast socket
enable_diagnosticsstringSwitch to enable diagnostic probing. Default is true
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
external_addrstringUse "external_addr" if you have hosts on different networks, behind firewalls. On each firewall, set up a port forwarding rule (sometimes called "virtual server") to the local IP (e.g. 192.168.1.100) of the host then on each host, set "external_addr" TCP transport parameter to the external (public IP) address of the firewall.
external_portstringUsed to map the internal port (bind_port) to an external port. Only used if > 0
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
log_discard_msgsstringwhether or not warnings about messages from different groups are logged
log_discard_msgs_versionstringwhether or not warnings about messages from members with a different version are discarded
logical_addr_cache_expirationstringTime (in ms) after which entries in the logical address cache marked as removable can be removed. 0 never removes any entries (not recommended)
logical_addr_cache_max_sizestringMax number of elements in the logical address cache before eviction starts
logical_addr_cache_reaper_intervalstringInterval (in ms) at which the reaper task scans logical_addr_cache and removes entries marked as removable. 0 disables reaping.
loopback_copystringWhether or not to make a copy of a message before looping it back up. Don't use this; might get removed without warning
loopback_separate_threadstringLoop back the message on a separate thread or use the current thread. Don't use this; might get removed without warning
max_bundle_sizestringMaximum number of bytes for messages to be queued until they are sent
message_processing_policystringThe fully qualified name of a class implementing MessageProcessingPolicy
message_processing_policy.max_buffer_sizestringMax number of messages buffered for consumption of the delivery thread in MaxOneThreadPerSender. 0 creates an unbounded buffer
port_rangestringThe range of valid ports: [bind_port .. bind_port+port_range ]. 0 only binds to bind_port and fails if taken
receive_interfacesstringComma delimited list of interfaces (IP addresses or interface names) to receive multicasts on
receive_on_all_interfacesstringIf true, the transport should use all available interfaces to receive multicast messages
recv_buf_sizestringsize in bytes of TCP receiver window
send_buf_sizestringsize in bytes of TCP send window
spawn_thread_on_full_poolstringWhen an internal message cannot be processed because of a full internal pool, a new thread is created to process the message. Setting this value to false disables this, and the message will be discarded (like regular messages)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
suppress_time_different_cluster_warningsstringTime during which identical warnings about messages from a member from a different cluster will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
suppress_time_different_version_warningsstringTime during which identical warnings about messages from a member with a different version will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
thread_dumps_thresholdstringThe number of times a thread pool needs to be full before a thread dump is logged
thread_naming_patternstringThread naming pattern for threads in this channel. Valid values are "pcl": "p": includes the thread name, e.g. "Incoming thread-1", "UDP ucast receiver", "c": includes the cluster name, e.g. "MyCluster", "l": includes the local address of the current member, e.g. "192.168.5.1:5678"
thread_pool.enabledstringEnable or disable the thread pool
thread_pool.keep_alive_timestringTimeout in milliseconds to remove idle threads from pool
thread_pool.max_threadsstringMaximum thread pool size for the thread pool
thread_pool.min_threadsstringMinimum thread pool size for the thread pool
thread_pool.use_common_fork_join_poolstringIf true, the common fork-join pool will be used; otherwise a custom ForkJoinPool will be created
thread_pool.use_fork_join_poolstringIf enabled, a ForkJoinPool will be used rather than a ThreadPoolExecutor
time_service_intervalstringInterval (in ms) at which the time service updates its timestamp. 0 disables the time service
use_fibersstringCreate fibers (if true) or regular threads (if false). This requires Java 15/Loom. If not present, use_fibers will be set to false and regular threads will be created. Note that the ThreadFactoryneeds to support this (DefaultThreadFactory does)
use_ip_addrsstringUse IP addresses (IpAddressUUID) instead of UUIDs as addresses. This is currently not compatible with RELAY2: disable if RELAY2 is used.
who_has_cache_timeoutstringTimeout (in ms) to determine how long to wait until a request to fetch the physical address for a given logical address will be sent again. Subsequent requests for the same physical address will therefore be spaced at least who_has_cache_timeout ms apart

TCP

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringThe bind address which should be used by this transport. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL, NON_LOOPBACK, match-interface, match-host, match-address
bind_portstringThe port to which the transport binds. Default of 0 binds to any (ephemeral) port. See also port_range
buffered_input_stream_sizestringSize of the buffer of the BufferedInputStream in TcpConnection. A read always tries to read ahead as much data as possible into the buffer. 0: default size
buffered_output_stream_sizestringSize of the buffer of the BufferedOutputStream in TcpConnection. Smaller messages are buffered until this size is exceeded or flush() is called. Bigger messages are sent immediately. 0: default size
bundler_capacitystringThe max number of elements in a bundler if the bundler supports size limitations
bundler_num_spinsstringNumber of spins before a real lock is acquired
bundler_typestringThe type of bundler used ("ring-buffer", "transfer-queue" (default), "sender-sends" or "no-bundler") or the fully qualified classname of a Bundler implementation
bundler_wait_strategystringThe wait strategy for a RingBuffer
client_bind_addrstringThe address of a local network interface which should be used by client sockets to bind to. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL and NON_LOOPBACK
client_bind_portstringThe local port a client socket should bind to. If 0, an ephemeral port will be picked.
conn_expire_timestringMax time connection can be idle before being reaped (in ms)
defer_client_bind_addrstringIf true, client sockets will not explicitly bind to bind_addr but will defer to the native socket
diag_enable_tcpstringUse a TCP socket to listen for probe requests (ignored if enable_diagnostics is false)
diag_enable_udpstringUse a multicast socket to listen for probe requests (ignored if enable_diagnostics is false)
diagnostics_addrstringMulticast address for diagnostic probing. Used when diag_enable_udp is true
diagnostics_bind_addrstringBind address for diagnostic probing. Used when diag_enable_tcp is true
diagnostics_bind_interfacesstringComma delimited list of interfaces (IP addresses or interface names) that the diagnostics multicast socket should bind to
diagnostics_passcodestringAuthorization passcode for diagnostics. If specified every probe query will be authorized
diagnostics_portstringPort for diagnostic probing. Default is 7500
diagnostics_port_rangestringThe number of ports to be probed for an available port (TCP)
diagnostics_ttlstringTTL of the diagnostics multicast socket
enable_diagnosticsstringSwitch to enable diagnostic probing. Default is true
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
external_addrstringUse "external_addr" if you have hosts on different networks, behind firewalls. On each firewall, set up a port forwarding rule (sometimes called "virtual server") to the local IP (e.g. 192.168.1.100) of the host then on each host, set "external_addr" TCP transport parameter to the external (public IP) address of the firewall.
external_portstringUsed to map the internal port (bind_port) to an external port. Only used if > 0
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
lingerstringSO_LINGER in msec. Default of -1 disables it
log_accept_errorstringLog a warning (or not) when ServerSocket.accept() throws an exception
log_discard_msgsstringwhether or not warnings about messages from different groups are logged
log_discard_msgs_versionstringwhether or not warnings about messages from members with a different version are discarded
logical_addr_cache_expirationstringTime (in ms) after which entries in the logical address cache marked as removable can be removed. 0 never removes any entries (not recommended)
logical_addr_cache_max_sizestringMax number of elements in the logical address cache before eviction starts
logical_addr_cache_reaper_intervalstringInterval (in ms) at which the reaper task scans logical_addr_cache and removes entries marked as removable. 0 disables reaping.
loopback_copystringWhether or not to make a copy of a message before looping it back up. Don't use this; might get removed without warning
loopback_separate_threadstringLoop back the message on a separate thread or use the current thread. Don't use this; might get removed without warning
max_bundle_sizestringMaximum number of bytes for messages to be queued until they are sent
max_lengthstringThe max number of bytes a message can have. If greater, an exception will be thrown. 0 disables this
message_processing_policystringThe fully qualified name of a class implementing MessageProcessingPolicy
message_processing_policy.max_buffer_sizestringMax number of messages buffered for consumption of the delivery thread in MaxOneThreadPerSender. 0 creates an unbounded buffer
peer_addr_read_timeoutstringMax time to block on reading of peer address
port_rangestringThe range of valid ports: [bind_port .. bind_port+port_range ]. 0 only binds to bind_port and fails if taken
reaper_intervalstringReaper interval in msec. Default is 0 (no reaping)
receive_interfacesstringComma delimited list of interfaces (IP addresses or interface names) to receive multicasts on
receive_on_all_interfacesstringIf true, the transport should use all available interfaces to receive multicast messages
recv_buf_sizestringReceiver buffer size in bytes
send_buf_sizestringSend buffer size in bytes
sock_conn_timeoutstringMax time allowed for a socket creation in connection table
spawn_thread_on_full_poolstringWhen an internal message cannot be processed because of a full internal pool, a new thread is created to process the message. Setting this value to false disables this, and the message will be discarded (like regular messages)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
suppress_time_different_cluster_warningsstringTime during which identical warnings about messages from a member from a different cluster will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
suppress_time_different_version_warningsstringTime during which identical warnings about messages from a member with a different version will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
tcp_nodelaystringShould TCP no delay flag be turned on
thread_dumps_thresholdstringThe number of times a thread pool needs to be full before a thread dump is logged
thread_naming_patternstringThread naming pattern for threads in this channel. Valid values are "pcl": "p": includes the thread name, e.g. "Incoming thread-1", "UDP ucast receiver", "c": includes the cluster name, e.g. "MyCluster", "l": includes the local address of the current member, e.g. "192.168.5.1:5678"
thread_pool.enabledstringEnable or disable the thread pool
thread_pool.keep_alive_timestringTimeout in milliseconds to remove idle threads from pool
thread_pool.max_threadsstringMaximum thread pool size for the thread pool
thread_pool.min_threadsstringMinimum thread pool size for the thread pool
thread_pool.use_common_fork_join_poolstringIf true, the common fork-join pool will be used; otherwise a custom ForkJoinPool will be created
thread_pool.use_fork_join_poolstringIf enabled, a ForkJoinPool will be used rather than a ThreadPoolExecutor
time_service_intervalstringInterval (in ms) at which the time service updates its timestamp. 0 disables the time service
use_fibersstringCreate fibers (if true) or regular threads (if false). This requires Java 15/Loom. If not present, use_fibers will be set to false and regular threads will be created. Note that the ThreadFactoryneeds to support this (DefaultThreadFactory does)
use_ip_addrsstringUse IP addresses (IpAddressUUID) instead of UUIDs as addresses. This is currently not compatible with RELAY2: disable if RELAY2 is used.
who_has_cache_timeoutstringTimeout (in ms) to determine how long to wait until a request to fetch the physical address for a given logical address will be sent again. Subsequent requests for the same physical address will therefore be spaced at least who_has_cache_timeout ms apart

TCPGOSSIP

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
initial_hostsstringComma delimited list of hosts to be contacted for initial membership
levelstringlogger level (see javadocs)
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.jboss.org/browse/JGRP-2317)
reconnect_intervalstringInterval (ms) by which a disconnected stub attempts to reconnect to the GossipRouter
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
sock_conn_timeoutstringMax time for socket creation. Default is 1000 msec
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results
use_niostringWhether to use blocking (false) or non-blocking (true) connections. If GossipRouter is used, this needs to be false; if GossipRouterNio is used, it needs to be true

TCPPING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
initial_hostsstringComma delimited list of hosts to be contacted for initial membership. Ideally, all members should be listed. If this is not possible, send_cache_on_join and / or return_entire_cache can be set to true
levelstringlogger level (see javadocs)
max_dynamic_hostsstringmax number of hosts to keep beyond the ones in initial_hosts
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.jboss.org/browse/JGRP-2317)
port_rangestringNumber of additional ports to be probed for membership. A port_range of 0 does not probe additional ports. Example: initial_hosts=A[7800] port_range=0 probes A:7800, port_range=1 probes A:7800 and A:7801
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results

TCP_NIO2

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringThe bind address which should be used by this transport. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL, NON_LOOPBACK, match-interface, match-host, match-address
bind_portstringThe port to which the transport binds. Default of 0 binds to any (ephemeral) port. See also port_range
bundler_capacitystringThe max number of elements in a bundler if the bundler supports size limitations
bundler_num_spinsstringNumber of spins before a real lock is acquired
bundler_typestringThe type of bundler used ("ring-buffer", "transfer-queue" (default), "sender-sends" or "no-bundler") or the fully qualified classname of a Bundler implementation
bundler_wait_strategystringThe wait strategy for a RingBuffer
client_bind_addrstringThe address of a local network interface which should be used by client sockets to bind to. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL and NON_LOOPBACK
client_bind_portstringThe local port a client socket should bind to. If 0, an ephemeral port will be picked.
conn_expire_timestringMax time connection can be idle before being reaped (in ms)
copy_on_partial_writestringIf true, a partial write will make a copy of the data so a buffer can be reused
defer_client_bind_addrstringIf true, client sockets will not explicitly bind to bind_addr but will defer to the native socket
diag_enable_tcpstringUse a TCP socket to listen for probe requests (ignored if enable_diagnostics is false)
diag_enable_udpstringUse a multicast socket to listen for probe requests (ignored if enable_diagnostics is false)
diagnostics_addrstringMulticast address for diagnostic probing. Used when diag_enable_udp is true
diagnostics_bind_addrstringBind address for diagnostic probing. Used when diag_enable_tcp is true
diagnostics_bind_interfacesstringComma delimited list of interfaces (IP addresses or interface names) that the diagnostics multicast socket should bind to
diagnostics_passcodestringAuthorization passcode for diagnostics. If specified every probe query will be authorized
diagnostics_portstringPort for diagnostic probing. Default is 7500
diagnostics_port_rangestringThe number of ports to be probed for an available port (TCP)
diagnostics_ttlstringTTL of the diagnostics multicast socket
enable_diagnosticsstringSwitch to enable diagnostic probing. Default is true
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
external_addrstringUse "external_addr" if you have hosts on different networks, behind firewalls. On each firewall, set up a port forwarding rule (sometimes called "virtual server") to the local IP (e.g. 192.168.1.100) of the host then on each host, set "external_addr" TCP transport parameter to the external (public IP) address of the firewall.
external_portstringUsed to map the internal port (bind_port) to an external port. Only used if > 0
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
lingerstringSO_LINGER in msec. Default of -1 disables it
log_discard_msgsstringwhether or not warnings about messages from different groups are logged
log_discard_msgs_versionstringwhether or not warnings about messages from members with a different version are discarded
logical_addr_cache_expirationstringTime (in ms) after which entries in the logical address cache marked as removable can be removed. 0 never removes any entries (not recommended)
logical_addr_cache_max_sizestringMax number of elements in the logical address cache before eviction starts
logical_addr_cache_reaper_intervalstringInterval (in ms) at which the reaper task scans logical_addr_cache and removes entries marked as removable. 0 disables reaping.
loopback_copystringWhether or not to make a copy of a message before looping it back up. Don't use this; might get removed without warning
loopback_separate_threadstringLoop back the message on a separate thread or use the current thread. Don't use this; might get removed without warning
max_bundle_sizestringMaximum number of bytes for messages to be queued until they are sent
max_lengthstringThe max number of bytes a message can have. If greater, an exception will be thrown. 0 disables this
max_send_buffersstringThe max number of outgoing messages that can get queued for a given peer connection (before dropping them). Most messages will get retransmitted; this is mainly used at startup, e.g. to prevent dropped discovery requests or responses (sent unreliably, without retransmission).
message_processing_policystringThe fully qualified name of a class implementing MessageProcessingPolicy
message_processing_policy.max_buffer_sizestringMax number of messages buffered for consumption of the delivery thread in MaxOneThreadPerSender. 0 creates an unbounded buffer
peer_addr_read_timeoutstringMax time to block on reading of peer address
port_rangestringThe range of valid ports: [bind_port .. bind_port+port_range ]. 0 only binds to bind_port and fails if taken
reader_idle_timestringNumber of ms a reader thread on a given connection can be idle (not receiving any messages) until it terminates. New messages will start a new reader
reaper_intervalstringReaper interval in msec. Default is 0 (no reaping)
receive_interfacesstringComma delimited list of interfaces (IP addresses or interface names) to receive multicasts on
receive_on_all_interfacesstringIf true, the transport should use all available interfaces to receive multicast messages
recv_buf_sizestringReceiver buffer size in bytes
send_buf_sizestringSend buffer size in bytes
sock_conn_timeoutstringMax time allowed for a socket creation in connection table
spawn_thread_on_full_poolstringWhen an internal message cannot be processed because of a full internal pool, a new thread is created to process the message. Setting this value to false disables this, and the message will be discarded (like regular messages)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
suppress_time_different_cluster_warningsstringTime during which identical warnings about messages from a member from a different cluster will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
suppress_time_different_version_warningsstringTime during which identical warnings about messages from a member with a different version will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
tcp_nodelaystringShould TCP no delay flag be turned on
thread_dumps_thresholdstringThe number of times a thread pool needs to be full before a thread dump is logged
thread_naming_patternstringThread naming pattern for threads in this channel. Valid values are "pcl": "p": includes the thread name, e.g. "Incoming thread-1", "UDP ucast receiver", "c": includes the cluster name, e.g. "MyCluster", "l": includes the local address of the current member, e.g. "192.168.5.1:5678"
thread_pool.enabledstringEnable or disable the thread pool
thread_pool.keep_alive_timestringTimeout in milliseconds to remove idle threads from pool
thread_pool.max_threadsstringMaximum thread pool size for the thread pool
thread_pool.min_threadsstringMinimum thread pool size for the thread pool
thread_pool.use_common_fork_join_poolstringIf true, the common fork-join pool will be used; otherwise a custom ForkJoinPool will be created
thread_pool.use_fork_join_poolstringIf enabled, a ForkJoinPool will be used rather than a ThreadPoolExecutor
time_service_intervalstringInterval (in ms) at which the time service updates its timestamp. 0 disables the time service
use_fibersstringCreate fibers (if true) or regular threads (if false). This requires Java 15/Loom. If not present, use_fibers will be set to false and regular threads will be created. Note that the ThreadFactoryneeds to support this (DefaultThreadFactory does)
use_ip_addrsstringUse IP addresses (IpAddressUUID) instead of UUIDs as addresses. This is currently not compatible with RELAY2: disable if RELAY2 is used.
who_has_cache_timeoutstringTimeout (in ms) to determine how long to wait until a request to fetch the physical address for a given logical address will be sent again. Subsequent requests for the same physical address will therefore be spaced at least who_has_cache_timeout ms apart

TRACE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

TUNNEL

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringThe bind address which should be used by this transport. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL, NON_LOOPBACK, match-interface, match-host, match-address
bind_portstringThe port to which the transport binds. Default of 0 binds to any (ephemeral) port. See also port_range
bundler_capacitystringThe max number of elements in a bundler if the bundler supports size limitations
bundler_num_spinsstringNumber of spins before a real lock is acquired
bundler_typestringThe type of bundler used ("ring-buffer", "transfer-queue" (default), "sender-sends" or "no-bundler") or the fully qualified classname of a Bundler implementation
bundler_wait_strategystringThe wait strategy for a RingBuffer
diag_enable_tcpstringUse a TCP socket to listen for probe requests (ignored if enable_diagnostics is false)
diag_enable_udpstringUse a multicast socket to listen for probe requests (ignored if enable_diagnostics is false)
diagnostics_addrstringMulticast address for diagnostic probing. Used when diag_enable_udp is true
diagnostics_bind_addrstringBind address for diagnostic probing. Used when diag_enable_tcp is true
diagnostics_bind_interfacesstringComma delimited list of interfaces (IP addresses or interface names) that the diagnostics multicast socket should bind to
diagnostics_passcodestringAuthorization passcode for diagnostics. If specified every probe query will be authorized
diagnostics_portstringPort for diagnostic probing. Default is 7500
diagnostics_port_rangestringThe number of ports to be probed for an available port (TCP)
diagnostics_ttlstringTTL of the diagnostics multicast socket
enable_diagnosticsstringSwitch to enable diagnostic probing. Default is true
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
external_addrstringUse "external_addr" if you have hosts on different networks, behind firewalls. On each firewall, set up a port forwarding rule (sometimes called "virtual server") to the local IP (e.g. 192.168.1.100) of the host then on each host, set "external_addr" TCP transport parameter to the external (public IP) address of the firewall.
external_portstringUsed to map the internal port (bind_port) to an external port. Only used if > 0
gossip_router_hostsstringA comma-separated list of GossipRouter hosts, e.g. HostA[12001],HostB[12001]
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
log_discard_msgsstringwhether or not warnings about messages from different groups are logged
log_discard_msgs_versionstringwhether or not warnings about messages from members with a different version are discarded
logical_addr_cache_expirationstringTime (in ms) after which entries in the logical address cache marked as removable can be removed. 0 never removes any entries (not recommended)
logical_addr_cache_max_sizestringMax number of elements in the logical address cache before eviction starts
logical_addr_cache_reaper_intervalstringInterval (in ms) at which the reaper task scans logical_addr_cache and removes entries marked as removable. 0 disables reaping.
loopback_copystringWhether or not to make a copy of a message before looping it back up. Don't use this; might get removed without warning
loopback_separate_threadstringLoop back the message on a separate thread or use the current thread. Don't use this; might get removed without warning
max_bundle_sizestringMaximum number of bytes for messages to be queued until they are sent
message_processing_policystringThe fully qualified name of a class implementing MessageProcessingPolicy
message_processing_policy.max_buffer_sizestringMax number of messages buffered for consumption of the delivery thread in MaxOneThreadPerSender. 0 creates an unbounded buffer
port_rangestringThe range of valid ports: [bind_port .. bind_port+port_range ]. 0 only binds to bind_port and fails if taken
receive_interfacesstringComma delimited list of interfaces (IP addresses or interface names) to receive multicasts on
receive_on_all_interfacesstringIf true, the transport should use all available interfaces to receive multicast messages
reconnect_intervalstringInterval in msec to attempt connecting back to router in case of torn connection. Default is 5000 msec
spawn_thread_on_full_poolstringWhen an internal message cannot be processed because of a full internal pool, a new thread is created to process the message. Setting this value to false disables this, and the message will be discarded (like regular messages)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
suppress_time_different_cluster_warningsstringTime during which identical warnings about messages from a member from a different cluster will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
suppress_time_different_version_warningsstringTime during which identical warnings about messages from a member with a different version will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
tcp_nodelaystringShould TCP no delay flag be turned on
thread_dumps_thresholdstringThe number of times a thread pool needs to be full before a thread dump is logged
thread_naming_patternstringThread naming pattern for threads in this channel. Valid values are "pcl": "p": includes the thread name, e.g. "Incoming thread-1", "UDP ucast receiver", "c": includes the cluster name, e.g. "MyCluster", "l": includes the local address of the current member, e.g. "192.168.5.1:5678"
thread_pool.enabledstringEnable or disable the thread pool
thread_pool.keep_alive_timestringTimeout in milliseconds to remove idle threads from pool
thread_pool.max_threadsstringMaximum thread pool size for the thread pool
thread_pool.min_threadsstringMinimum thread pool size for the thread pool
thread_pool.use_common_fork_join_poolstringIf true, the common fork-join pool will be used; otherwise a custom ForkJoinPool will be created
thread_pool.use_fork_join_poolstringIf enabled, a ForkJoinPool will be used rather than a ThreadPoolExecutor
time_service_intervalstringInterval (in ms) at which the time service updates its timestamp. 0 disables the time service
use_fibersstringCreate fibers (if true) or regular threads (if false). This requires Java 15/Loom. If not present, use_fibers will be set to false and regular threads will be created. Note that the ThreadFactoryneeds to support this (DefaultThreadFactory does)
use_ip_addrsstringUse IP addresses (IpAddressUUID) instead of UUIDs as addresses. This is currently not compatible with RELAY2: disable if RELAY2 is used.
use_niostringWhether to use blocking (false) or non-blocking (true) connections. If GossipRouter is used, this needs to be false; if GossipRouterNio is used, it needs to be true
who_has_cache_timeoutstringTimeout (in ms) to determine how long to wait until a request to fetch the physical address for a given logical address will be sent again. Subsequent requests for the same physical address will therefore be spaced at least who_has_cache_timeout ms apart

UDP

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringThe bind address which should be used by this transport. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL, NON_LOOPBACK, match-interface, match-host, match-address
bind_portstringThe port to which the transport binds. Default of 0 binds to any (ephemeral) port. See also port_range
bundler_capacitystringThe max number of elements in a bundler if the bundler supports size limitations
bundler_num_spinsstringNumber of spins before a real lock is acquired
bundler_typestringThe type of bundler used ("ring-buffer", "transfer-queue" (default), "sender-sends" or "no-bundler") or the fully qualified classname of a Bundler implementation
bundler_wait_strategystringThe wait strategy for a RingBuffer
diag_enable_tcpstringUse a TCP socket to listen for probe requests (ignored if enable_diagnostics is false)
diag_enable_udpstringUse a multicast socket to listen for probe requests (ignored if enable_diagnostics is false)
diagnostics_addrstringMulticast address for diagnostic probing. Used when diag_enable_udp is true
diagnostics_bind_addrstringBind address for diagnostic probing. Used when diag_enable_tcp is true
diagnostics_bind_interfacesstringComma delimited list of interfaces (IP addresses or interface names) that the diagnostics multicast socket should bind to
diagnostics_passcodestringAuthorization passcode for diagnostics. If specified every probe query will be authorized
diagnostics_portstringPort for diagnostic probing. Default is 7500
diagnostics_port_rangestringThe number of ports to be probed for an available port (TCP)
diagnostics_ttlstringTTL of the diagnostics multicast socket
disable_loopbackstringIf true, disables IP_MULTICAST_LOOP on the MulticastSocket (for sending and receiving of multicast packets). IP multicast packets send on a host P will therefore not be received by anyone on P. Use with caution.
enable_diagnosticsstringSwitch to enable diagnostic probing. Default is true
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
external_addrstringUse "external_addr" if you have hosts on different networks, behind firewalls. On each firewall, set up a port forwarding rule (sometimes called "virtual server") to the local IP (e.g. 192.168.1.100) of the host then on each host, set "external_addr" TCP transport parameter to the external (public IP) address of the firewall.
external_portstringUsed to map the internal port (bind_port) to an external port. Only used if > 0
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
ip_mcaststringMulticast toggle. If false multiple unicast datagrams are sent instead of one multicast. Default is true
ip_ttlstringThe time-to-live (TTL) for multicast datagram packets. Default is 8
levelstringlogger level (see javadocs)
log_discard_msgsstringwhether or not warnings about messages from different groups are logged
log_discard_msgs_versionstringwhether or not warnings about messages from members with a different version are discarded
logical_addr_cache_expirationstringTime (in ms) after which entries in the logical address cache marked as removable can be removed. 0 never removes any entries (not recommended)
logical_addr_cache_max_sizestringMax number of elements in the logical address cache before eviction starts
logical_addr_cache_reaper_intervalstringInterval (in ms) at which the reaper task scans logical_addr_cache and removes entries marked as removable. 0 disables reaping.
loopback_copystringWhether or not to make a copy of a message before looping it back up. Don't use this; might get removed without warning
loopback_separate_threadstringLoop back the message on a separate thread or use the current thread. Don't use this; might get removed without warning
max_bundle_sizestringMaximum number of bytes for messages to be queued until they are sent
mcast_addrstringThe multicast address used for sending and receiving packets
mcast_portstringThe multicast port used for sending and receiving packets. Default is 7600
mcast_receiver_threadsstringNumber of multicast receiver threads, all reading from the same MulticastSocket. If de-serialization is slow, increasing the number of receiver threads might yield better performance.
mcast_recv_buf_sizestringReceive buffer size of the multicast datagram socket
mcast_send_buf_sizestringSend buffer size of the multicast datagram socket
message_processing_policystringThe fully qualified name of a class implementing MessageProcessingPolicy
message_processing_policy.max_buffer_sizestringMax number of messages buffered for consumption of the delivery thread in MaxOneThreadPerSender. 0 creates an unbounded buffer
port_rangestringThe range of valid ports: [bind_port .. bind_port+port_range ]. 0 only binds to bind_port and fails if taken
receive_interfacesstringComma delimited list of interfaces (IP addresses or interface names) to receive multicasts on
receive_on_all_interfacesstringIf true, the transport should use all available interfaces to receive multicast messages
spawn_thread_on_full_poolstringWhen an internal message cannot be processed because of a full internal pool, a new thread is created to process the message. Setting this value to false disables this, and the message will be discarded (like regular messages)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
suppress_time_different_cluster_warningsstringTime during which identical warnings about messages from a member from a different cluster will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
suppress_time_different_version_warningsstringTime during which identical warnings about messages from a member with a different version will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
suppress_time_out_of_buffer_spacestringSuppresses warnings on Mac OS (for now) about not enough buffer space when sending a datagram packet
thread_dumps_thresholdstringThe number of times a thread pool needs to be full before a thread dump is logged
thread_naming_patternstringThread naming pattern for threads in this channel. Valid values are "pcl": "p": includes the thread name, e.g. "Incoming thread-1", "UDP ucast receiver", "c": includes the cluster name, e.g. "MyCluster", "l": includes the local address of the current member, e.g. "192.168.5.1:5678"
thread_pool.enabledstringEnable or disable the thread pool
thread_pool.keep_alive_timestringTimeout in milliseconds to remove idle threads from pool
thread_pool.max_threadsstringMaximum thread pool size for the thread pool
thread_pool.min_threadsstringMinimum thread pool size for the thread pool
thread_pool.use_common_fork_join_poolstringIf true, the common fork-join pool will be used; otherwise a custom ForkJoinPool will be created
thread_pool.use_fork_join_poolstringIf enabled, a ForkJoinPool will be used rather than a ThreadPoolExecutor
time_service_intervalstringInterval (in ms) at which the time service updates its timestamp. 0 disables the time service
tosstringTraffic class for sending unicast and multicast datagrams. Default is 0
ucast_receiver_threadsstringNumber of unicast receiver threads, all reading from the same DatagramSocket. If de-serialization is slow, increasing the number of receiver threads might yield better performance.
ucast_recv_buf_sizestringReceive buffer size of the unicast datagram socket
ucast_send_buf_sizestringSend buffer size of the unicast datagram socket
use_fibersstringCreate fibers (if true) or regular threads (if false). This requires Java 15/Loom. If not present, use_fibers will be set to false and regular threads will be created. Note that the ThreadFactoryneeds to support this (DefaultThreadFactory does)
use_ip_addrsstringUse IP addresses (IpAddressUUID) instead of UUIDs as addresses. This is currently not compatible with RELAY2: disable if RELAY2 is used.
who_has_cache_timeoutstringTimeout (in ms) to determine how long to wait until a request to fetch the physical address for a given logical address will be sent again. Subsequent requests for the same physical address will therefore be spaced at least who_has_cache_timeout ms apart

UFC

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_block_timestringMax time (in ms) to block
max_block_timesstringMax times to block for the listed messages sizes (Message.getLength()). Example: "1000:10,5000:30,10000:500"
max_creditsstringMax number of bytes to send per receiver until an ack must be received to proceed
min_creditsstringComputed as max_credits x min_theshold unless explicitly set
min_thresholdstringThe threshold (as a percentage of max_credits) at which a receiver sends more credits to a sender. Example: if max_credits is 1'000'000, and min_threshold 0.25, then we send ca. 250'000 credits to P once we've got only 250'000 credits left for P (we've received 750'000 bytes from P)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

UFC_NB

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_block_timestringMax time (in ms) to block
max_block_timesstringMax times to block for the listed messages sizes (Message.getLength()). Example: "1000:10,5000:30,10000:500"
max_creditsstringMax number of bytes to send per receiver until an ack must be received to proceed
max_queue_sizestringMax number of bytes of all queued messages for a given destination. If a given destination has no credits left and the message cannot be added to the queue because it is full, then the sender thread will be blocked until there is again space available in the queue, or the protocol is stopped.
min_creditsstringComputed as max_credits x min_theshold unless explicitly set
min_thresholdstringThe threshold (as a percentage of max_credits) at which a receiver sends more credits to a sender. Example: if max_credits is 1'000'000, and min_threshold 0.25, then we send ca. 250'000 credits to P once we've got only 250'000 credits left for P (we've received 750'000 bytes from P)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

UNICAST3

NameTypeDefaultDescription
ack_thresholdstringSend an ack immediately when a batch of ack_threshold (or more) messages is received. Otherwise send delayed acks. If 1, ack single messages (similar to UNICAST)
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
conn_close_timeoutstringTime (in ms) until a connection marked to be closed will get removed. 0 disables this
conn_expiry_timeoutstringTime (in milliseconds) after which an idle incoming or outgoing connection is closed. The connection will get re-established when used again. 0 disables connection reaping. Note that this creates lingering connection entries, which increases memory over time.
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
log_not_found_msgsstringIf true, trashes warnings about retransmission messages not found in the xmit_table (used for testing)
max_retransmit_timestringMax number of milliseconds we try to retransmit a message to any given member. After that, the connection is removed. Any new connection to that member will start with seqno #1 again. 0 disables this
max_xmit_req_sizestringMax number of messages to ask for in a retransmit request. 0 disables this and uses the max bundle size in the transport
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
sync_min_intervalstringMin time (in ms) to elapse for successive SEND_FIRST_SEQNO messages to be sent to the same sender
xmit_intervalstringInterval (in milliseconds) at which messages in the send windows are resent
xmit_table_max_compaction_timestringNumber of milliseconds after which the matrix in the retransmission table is compacted (only for experts)
xmit_table_msgs_per_rowstringNumber of elements of a row of the matrix in the retransmission table; gets rounded to the next power of 2 (only for experts). The capacity of the matrix is xmit_table_num_rows * xmit_table_msgs_per_row
xmit_table_num_rowsstringNumber of rows of the matrix in the retransmission table (only for experts)
xmit_table_resize_factorstringResize factor of the matrix in the retransmission table (only for experts)

VERIFY_SUSPECT

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringInterface for ICMP pings. Used if use_icmp is true The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL and NON_LOOPBACK
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
num_msgsstringNumber of verify heartbeats sent to a suspected member
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
timeoutstringNumber of millisecs to wait for a response from a suspected member
use_icmpstringUse InetAddress.isReachable() to verify suspected member instead of regular messages
use_mcast_rspsstringSend the I_AM_NOT_DEAD message back as a multicast rather than as multiple unicasts (default is false)

pbcast.FLUSH

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bypassstringWhen set, FLUSH is bypassed, same effect as if FLUSH wasn't in the config at all
enable_reconciliationstringReconciliation phase toggle. Default is true
end_flush_timeoutstringTimeout to wait for UNBLOCK after STOP_FLUSH is issued. Default is 2000 msec
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
retry_timeoutstringRetry timeout after an unsuccessful attempt to quiet the cluster (first flush phase). Default is 3000 msec
start_flush_timeoutstringTimeout (per atttempt) to quiet the cluster during the first flush phase. Default is 2000 msec
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
timeoutstringMax time to keep channel blocked in flush. Default is 8000 msec

pbcast.GMS

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
all_clients_retry_timeoutstringTime (in ms) to wait for another discovery round when all discovery responses were clients. A timeout of 0 means don't wait at all.
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
install_view_locally_firststringWhether or not to install a new view locally first before broadcasting it (only done at the coord ). Set to true automatically if a state transfer protocol is detected
join_timeoutstringJoin timeout
leave_timeoutstringMax time (in ms) to wait for a LEAVE response after a LEAVE req has been sent to the coord
levelstringlogger level (see javadocs)
log_collect_msgsstringLogs failures for collecting all view acks if true
log_view_warningsstringLogs warnings for reception of views less than the current, and for views which don't include self
max_bundling_timestringMax view bundling timeout if view bundling is turned on
max_join_attemptsstringNumber of join attempts before we give up and become a singleton. 0 means 'never give up'.
max_leave_attemptsstringNumber of times a LEAVE request is sent to the coordinator (without receiving a LEAVE response, before giving up and leaving anyway (failure detection will eventually exclude the left member). A value of 0 means wait forever
membership_change_policystringThe fully qualified name of a class implementing MembershipChangePolicy.
merge_timeoutstringTimeout (in ms) to complete merge
num_prev_mbrsstringMax number of old members to keep in history. Default is 50
num_prev_viewsstringNumber of views to store in history
print_local_addrstringPrint local address of this member after connect. Default is true
print_physical_addrsstringPrint physical address(es) on startup
print_view_detailsstringWhen true, left and joined members are printed in addition to the view
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_delta_viewsstringIf true, then GMS is allowed to send VIEW messages with delta views, otherwise it always sends full views. See https://issues.jboss.org/browse/JGRP-1354 for details.
use_flush_if_presentstringUse flush for view changes. Default is true
view_ack_collection_timeoutstringTime in ms to wait for all VIEW acks (0 == wait forever. Default is 2000 msec
view_bundlingstringView bundling toggle

pbcast.NAKACK2

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
become_server_queue_sizestringSize of the queue to hold messages received after creating the channel, but before being connected (is_server=false). After becoming the server, the messages in the queue are fed into up() and the queue is cleared. The motivation is to avoid retransmissions (see https://issues.jboss.org/browse/JGRP-1509 for details). 0 disables the queue.
discard_delivered_msgsstringShould messages delivered to application be discarded
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
log_discard_msgsstringdiscards warnings about promiscuous traffic
log_not_found_msgsstringIf false, trashes warnings about retransmission messages not found in the xmit_table (used for testing)
max_rebroadcast_timeoutstringTimeout to rebroadcast messages. Default is 2000 msec
max_xmit_req_sizestringMax number of messages to ask for in a retransmit request. 0 disables this and uses the max bundle size in the transport
resend_last_seqnostringIf enabled, multicasts the highest sent seqno every xmit_interval ms. This is skipped if a regular message has been multicast, and the task aquiesces if the highest sent seqno hasn't changed for resend_last_seqno_max_times times. Used to speed up retransmission of dropped last messages (JGRP-1904)
resend_last_seqno_max_timesstringMax number of times the last seqno is resent before acquiescing if last seqno isn't incremented
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
suppress_time_non_member_warningsstringTime during which identical warnings about messages from a non member will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
use_mcast_xmitstringRetransmit retransmit responses (messages) using multicast rather than unicast
use_mcast_xmit_reqstringUse a multicast to request retransmission of missing messages
xmit_from_random_memberstringAsk a random member for retransmission of a missing message. Default is false
xmit_intervalstringInterval (in milliseconds) at which missing messages (from all retransmit buffers) are retransmitted
xmit_table_max_compaction_timestringNumber of milliseconds after which the matrix in the retransmission table is compacted (only for experts)
xmit_table_msgs_per_rowstringNumber of elements of a row of the matrix in the retransmission table; gets rounded to the next power of 2 (only for experts). The capacity of the matrix is xmit_table_num_rows * xmit_table_msgs_per_row
xmit_table_num_rowsstringNumber of rows of the matrix in the retransmission table (only for experts)
xmit_table_resize_factorstringResize factor of the matrix in the retransmission table (only for experts)

pbcast.STABLE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
desired_avg_gossipstringAverage time to send a STABLE message
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_bytesstringMaximum number of bytes received in all messages before sending a STABLE message is triggered
send_stable_msgs_to_coord_onlystringWether or not to send the STABLE messages to all members of the cluster, or to the current coordinator only. The latter reduces the number of STABLE messages, but also generates more work on the coordinator
stability_delaystringDelay before stability message is sent
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

pbcast.STATE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
buffer_sizestringSize (in bytes) of the state transfer buffer
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_poolstringMaximum number of pool threads serving state requests
pool_thread_keep_alivestringKeep alive for pool threads serving state requests
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

pbcast.STATE_SOCK

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringThe interface (NIC) used to accept state requests. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL and NON_LOOPBACK
bind_interfacestringThe interface (NIC) which should be used by this transport
bind_portstringThe port listening for state requests. Default value of 0 binds to any (ephemeral) port
buffer_sizestringSize (in bytes) of the state transfer buffer
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
external_addrstringUse "external_addr" if you have hosts on different networks, behind firewalls. On each firewall, set up a port forwarding rule (sometimes called "virtual server") to the local IP (e.g. 192.168.1.100) of the host then on each host, set "external_addr" TCP transport parameter to the external (public IP) address of the firewall.
external_portstringUsed to map the internal port (bind_port) to an external port. Only used if > 0
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_poolstringMaximum number of pool threads serving state requests
pool_thread_keep_alivestringKeep alive for pool threads serving state requests
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

pbcast.STATE_TRANSFER

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

tom.TOA

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

relay.RELAY2

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_relay_creationstringIf true, the creation of the relay channel (and the connect()) are done in the background. Async relay creation is recommended, so the view callback won't be blocked
can_become_site_masterstringWhether or not this node can become the site master. If false, and we become the coordinator, we won't start the bridge(s)
can_forward_local_clusterstringIf true, a site master forwards messages received from other sites to randomly chosen members of the local site for load balancing, reducing work for itself
configstringName of the relay configuration
enable_address_taggingstringWhether or not we generate our own addresses in which we use can_become_site_master. If this property is false, can_become_site_master is ignored
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_site_mastersstringMaximum number of site masters. Setting this to a value greater than 1 means that we can have multiple site masters. If the value is greater than the number of cluster nodes, everyone in the site will be a site master (and thus join the global cluster
relay_multicastsstringWhether or not to relay multicast (dest=null) messages
sitestringName of the site (needs to be defined in the configuration)
site_master_picker_implstringFully qualified name of a class implementing SiteMasterPicker
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
suppress_time_no_route_errorsstringTime (in ms) during which identical errors about no route to host will be suppressed. 0 disables this (every error will be logged).
topo_wait_timestringNumber of millis to wait for topology detection
warn_when_ftc_missingstringIf true, logs a warning if the FORWARD_TO_COORD protocol is not found. This property might get deprecated soon

RelayConfiguration

rules.SUPERVISOR

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
configstringLocation of an XML file listing the rules to be installed
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

dns.DNS_PING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
dns_addressstringDNS Address. This property will be assembled with the 'dns://' prefix. If this is specified, A records will be resolved through DnsContext.
dns_context_factorystringDNS Context Factory. Used when DNS_PING is configured to use SRV record types and when using A types with a specific dns_address.
dns_querystringA comma-separated list of DNS queries for fetching members
dns_record_typestringDNS Record type
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.jboss.org/browse/JGRP-2317)
probe_transport_portsstringFor SRV records returned by the DNS query, the non-0 ports returned by DNS areused. If this attribute is true, then the transport ports will also be used. Ignored for A records.
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results

threads?

Defines the threading subsystem.

The threading subsystem, used to declare manageable thread pools and resources.

thread-factory*

A thread factory (implementing java.util.concurrent.ThreadFactory). The "name" attribute is the bean name of the created thread factory. The optional "priority" attribute may be used to specify the thread priority of created threads. The optional "group-name" attribute specifies the name of a the thread group to create for this thread factory. The "thread-name-pattern" is the template used to create names for threads. The following patterns may be used: %% - emit a percent sign %t - emit the per-factory thread sequence number %g - emit the global thread sequence number %f - emit the factory sequence number %i - emit the thread ID %G - emit the thread group name
NameTypeDefaultDescription
namestring
group-namestring
thread-name-patternstring
prioritystring

blocking-bounded-queue-thread-pool*

A thread pool executor with a bounded queue which can run blocking operations. Such a thread pool has a core size and a queue with an upper bound. When a task is submitted, if the number of running threads is less than the core size, a new thread is created. Otherwise, the task is placed in queue. If too many tasks are allowed to be submitted to this type of executor, an out of memory condition may occur. If the queue is too small it may cause a CacheBackpressureFullException to be thrown if a non-blocking thread cannot submit a task. The "name" attribute is the bean name of the created executor. The "max-threads" attribute must be used to specify the maximum thread pool size. The "core-threads" attribute defines the number of threads to keep in the pool. The "keepalive-time" attribute may used to specify the amount of time that pool threads should be kept running when idle; if not specified, threads will run until the executor is shut down. The "thread-factory" element specifies the bean name of a specific thread factory to use to create worker threads.
NameTypeDefaultDescription
namestring
thread-factorystring
max-threadsint
core-threadsint
keepalive-timestring
queue-lengthstring

non-blocking-bounded-queue-thread-pool*

A thread pool executor with a bounded queue which should only run non blocking operations. Such a thread pool has a core size and a queue with an upper bound. When a task is submitted, if the number of running threads is less than the core size, a new thread is created. Otherwise, the task is placed in queue. If too many tasks are allowed to be submitted to this type of executor, an out of memory condition may occur. If the queue is too small it may cause blocking thread pool tasks to build up waiting to submit. The "name" attribute is the bean name of the created executor. The "max-threads" attribute must be used to specify the maximum thread pool size. The "core-threads" attribute defines the number of threads to keep in the pool. The "keepalive-time" attribute may used to specify the amount of time that pool threads should be kept running when idle; if not specified, threads will run until the executor is shut down. The "thread-factory" element specifies the bean name of a specific thread factory to use to create worker threads.
NameTypeDefaultDescription
namestring
thread-factorystring
max-threadsint
core-threadsint
keepalive-timestring
queue-lengthstring

cached-thread-pool*

A thread pool executor that creates new threads as needed, but will reuse previously constructed threads when they are available. The "name" attribute is the bean name of the created executor. The "thread-factory" element specifies the bean name of a specific thread factory to use to create worker threads.
NameTypeDefaultDescription
namestring
thread-factorystring

scheduled-thread-pool*

A thread pool executor that creates a single-threaded executor that can schedule commands to run after a given delay, or to execute periodically. The "name" attribute is the bean name of the created executor. The "thread-factory" element specifies the bean name of a specific thread factory to use to create worker threads.
NameTypeDefaultDescription
namestring
thread-factorystring

cache-container

Defines an embedded cache container.

NameTypeDefaultDescription
namestringUniquely identifies this cache container.
jndi-namestringUnused XML attribute
default-cachestringIndicates the default cache for this cache container
zero-capacity-nodebooleanfalseIf 'true' then no data is stored in this node. Defaults to 'false'.
startFIXMEUnused XML attribute
listener-executorstringDefines the executor used for asynchronous cache listener notifications.
expiration-executorstringDefines the scheduled executor used for expirations.
non-blocking-executorstringThe name of the executor used for non-blocking operations. Must be non-blocking and must have a queue.
blocking-executorstringThe name of the executor used for blocking operations. Must be blocking and must have a queue.
modulestringorg.jboss.as.clustering.infinispanUnused XML attribute
statisticsbooleanfalseDetermines whether or not the cache container should collect statistics. Keep disabled for optimal performance.
shutdown-hook
DEFAULTUse the default shutdown hook behaviour (REGISTER)
REGISTERRegister a shutdown hook
DONT_REGISTERDon't register a shutdown hook
Behavior of the JVM shutdown hook registered by the cache

transport?

Overrides the transport characteristics for this cache container.

NameTypeDefaultDescription
stackstringDefines the jgroups stack used by the transport.
clusterstringDefines the name for the underlying group communication cluster.
remote-command-executorstringConfiguration for the executor service used to execute remote commands. Use org.infinispan.executors.WithinThreadExecutorFactory to disable.
lock-timeoutlong240000 Infinispan uses a distributed lock to maintain a coherent transaction log during state transfer or rehashing, which means that only one cache can be doing state transfer or rehashing at the same time. This constraint is in place because more than one cache could be involved in a transaction. This timeout controls the time to wait to acquire a distributed lock.
node-namestring 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)
machinestring The id of the machine where this node runs.
rackstring The id of the rack where this node runs.
sitestring The id of the site where this node runs.
initial-cluster-sizeint The minimum number of nodes that must join the cluster for the cache manager to start
initial-cluster-timeoutlong The amount of time in milliseconds to wait for a cluster with sufficient nodes to form. Defaults to 60000

property*

A transport property with name and value to be passed to the Transport instance.

security?

Configures security for this cache container.

NameTypeDefaultDescription
cache-sizeint The ACL cache size. The default is 1000 entries. A value of 0 disables the cache.
cache-timeoutlong The ACL cache timeout in milliseconds. The default is 300000 (5 minutes). A value of 0 disables the cache.

authorization?

Configures the global authorization role to permission mapping. The presence of this element in the configuration implicitly enables authorization.

NameTypeDefaultDescription
audit-loggerstring Class of the audit logger.

identity-role-mapper

Uses the identity role mapper where principal names are converted as-is into role names.

common-name-role-mapper

Uses the common name role mapper which assumes principal names are in Distinguished Name format and extracts the Common Name to use as a role

cluster-role-mapper

Uses the cluster role mapper which stores the principal to role mappings within the cluster registry.

custom-role-mapper

Uses a custom role mapper.

NameTypeDefaultDescription
classstring Class of the custom principal to role mapper

roles?

role*

Defines a new role name and assigns permissions to it.

NameTypeDefaultDescription
namestring Defines the name of the role.
permissions
LIFECYCLE Allows control of a cache's lifecycle (i.e. starting and stopping a cache)
READ Allows reading data from a cache
WRITE Allows writing data to a cache
EXEC Allows performing task execution (e.g. distributed executors, map/reduce) on a cache
LISTEN Allows attaching listeners to a cache
BULK_READ Allows bulk-read operations (e.g. obtaining all the keys in a cache)
BULK_WRITE Allows bulk-write operations (e.g. clearing a cache)
ADMIN Allows performing "administrative" operations on a cache
ALL Aggregate permission which implies all of the others
ALL_READ Aggregate permission which implies all read permissions (READ and BULK_READ)
ALL_WRITE Aggregate permission which implies all write permissions (WRITE and BULK_WRITE)
NONE Permission which means no permissions
Defines the list of permissions for the role.

serialization?

Specifies how data serialization will be performed by the cache container.

NameTypeDefaultDescription
marshallerstring Fully qualified name of the marshaller to use. It must implement org.infinispan.marshall.StreamingMarshaller
versionstring71 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.

advanced-externalizer*

Deprecated since 10.0. Please utilise ProtoStream based marshalling for your Java objects by configuring one or more context-initializer elements. Alternatively, it's possible to configure a custom org.infinispan.commons.marshall.Marshaller implementation for user types, via the "marshaller" attribute. AdvancedExternalizer implementations allow users to have fine grained control over how Java objects are serialized. Providing smaller payloads than traditional Serialization or Externalizer implementations by writing a class ID value instead of the classes FQN.

NameTypeDefaultDescription
classstring Class of the custom externalizer
idint Id of the custom externalizer

context-initializer*

SerializationContextInitializer implementation which is used to initialize a ProtoStream based marshaller for user types. If no <context-initializer> elements are present then the java.util.ServiceLoader mechanism will be used to automatically discover all SerializationContextInitializer implementations present in classpath and load them.

NameTypeDefaultDescription
classstring Class of the SerializationContextInitializer implementation

allow-list?

Enables individual classes or regular expressions to be added to the EmbeddedCacheManager allow list.

class*

FQN of the class to be added to the allowlist.

regex*

Regex pattern used to determine if a class is a member of the allowlist.

metrics?

Configures MicroProfile metrics.

NameTypeDefaultDescription
gaugesbooleantrue Exports gauge metrics. Gauges are enabled by default but you must enable statistics so that they are exported.
histogramsbooleanfalse Exports histogram metrics. Histograms are not enabled by default because they require additional computation. If you enable histograms you must also enable statistics so that they are exported.
prefixstring Specifies a global name prefix for metrics.
namesAsTagsbooleanfalse Put the cache manager and cache name in tags rather then include them in the metric name.

jmx?

Enables and configures JMX monitoring and management.

NameTypeDefaultDescription
domainstringorg.infinispan If JMX statistics are enabled then all 'published' JMX objects appear under this domain. Optional, if not specified it defaults to "org.infinispan".
mbean-server-lookupstring Class that attempts to locate a JMX MBean server to bind to. Defaults to the platform MBean server.
enabledbooleanfalse Enables exporting of JMX MBeans.

property*

Specifies a JMX property with a name and value that is passed to the MBean Server lookup instance.

global-state?

Defines the global state persistence configuration. If this element is not present, global state persistence will be disabled.

persistent-location?

Defines the filesystem path where persistent state data which needs to survive container restarts should be stored. The data stored at this location is required for graceful shutdown and restore. This path must NOT be shared among multiple instances. Defaults to the user.dir system property which usually is where the application was started. This value should be overridden to a more appropriate location.

NameTypeDefaultDescription
relative-tostringjboss.server.data.dirA property name whose value will be used as the root path for storing global state
pathstring Defines the path where global state for this cache-container will be stored.

shared-persistent-location?

Defines the filesystem path where shared persistent state data which needs to survive container restarts should be stored. This path can be safely shared among multiple instances. Defaults to the user.dir system property which usually is where the application was started. This value should be overridden to a more appropriate location.

NameTypeDefaultDescription
relative-tostringjboss.server.data.dirA property name whose value will be used as the root path for storing global state
pathstring Defines the path where global state for this cache-container will be stored.

temporary-location?

Defines the filesystem path where temporary state should be stored. Defaults to the value of the java.io.tmpdir system property.

NameTypeDefaultDescription
relative-tostringjboss.server.data.dirA property name whose value will be used as the root path for storing global state
pathstring Defines the path where global state for this cache-container will be stored.

immutable-configuration-storage

An immutable configuration storage.

volatile-configuration-storage

A non-persistent configuration storage.

overlay-configuration-storage

A persistent configuration storage which saves runtime configurations to the persistent-location.

managed-configuration-storage

A persistent configuration storage for managed environments. This doesn't work in embedded mode.

custom-configuration-storage

Uses a custom configuration storage implementation.

NameTypeDefaultDescription
classstring Class of the custom configuration storage implementation.

local-cache

Defines a LOCAL mode cache.

NameTypeDefaultDescription
simple-cacheFIXMEfalse This cache will be using optimized (faster) implementation that does not support transactions/invocation batching, persistence, custom interceptors, indexing, store-as-binary or transcoding. Also, this type of cache does not support Map-Reduce jobs or Distributed Executor framework.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
enabledbooleantrue Enables backup locations. Set the value to "false" to disable backups.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf 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.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

object

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as instance variables in the Java heap. Instances of byte[] are wrapped to ensure equality. This is the default storage format.

NameTypeDefaultDescription
sizelong-1 Eviction occurs when the number of entries exceeds the size.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

binary

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as bytes in the Java heap. Cache entries are serialized to binary representations. Note that binary storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

off-heap

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'OFF_HEAP'. Store keys and values as bytes in native memory. Cache entries are serialized to binary representations. Temporary objects are stored in the Java heap space until processing completes. Note that off-heap storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Specify whether indexing is enabled or not. Defaults to false, but it auto-activates if the indexing element is present and indexing is not explicitly disabled. It also auto-activates if 'auto-config' is set to 'true'.
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.

local-cache-configuration

Defines a LOCAL mode cache configuration.

NameTypeDefaultDescription
simple-cacheFIXMEfalse This cache will be using optimized (faster) implementation that does not support transactions/invocation batching, persistence, custom interceptors, indexing, store-as-binary or transcoding. Also, this type of cache does not support Map-Reduce jobs or Distributed Executor framework.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
enabledbooleantrue Enables backup locations. Set the value to "false" to disable backups.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf 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.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

object

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as instance variables in the Java heap. Instances of byte[] are wrapped to ensure equality. This is the default storage format.

NameTypeDefaultDescription
sizelong-1 Eviction occurs when the number of entries exceeds the size.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

binary

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as bytes in the Java heap. Cache entries are serialized to binary representations. Note that binary storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

off-heap

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'OFF_HEAP'. Store keys and values as bytes in native memory. Cache entries are serialized to binary representations. Temporary objects are stored in the Java heap space until processing completes. Note that off-heap storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Specify whether indexing is enabled or not. Defaults to false, but it auto-activates if the indexing element is present and indexing is not explicitly disabled. It also auto-activates if 'auto-config' is set to 'true'.
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.

replicated-cache

Defines a REPL_* mode cache.

NameTypeDefaultDescription
segmentsint256 Sets the number of hash space segments per cluster. The default value is 256. The value should be at least 20 * the cluster size.
consistent-hash-factorystring Deprecated since 11.0. Will be removed in 14.0, the segment allocation will no longer be customizable. The factory to use for generating the consistent hash. Must implement `org.infinispan.distribution.ch.ConsistentHashFactory`. E.g. `org.infinispan.distribution.ch.impl.SyncConsistentHashFactory` can be used to guarantee that multiple distributed caches use exactly the same consistent hash, which for performance reasons is not guaranteed by the default consistent hash factory instance used.
key-partitionerstring The name of the key partitioner class. Must implement `org.infinispan.distribution.ch.KeyPartitioner`. A custom key partitioner can be used as an alternative to grouping, to guarantee that some keys are located in the same segment (and thus their primary owner is the same node). Since 8.2.

state-transfer?

The state transfer configuration for distribution and replicated caches.

NameTypeDefaultDescription
enabledbooleantrueIf enabled, 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.
timeoutlong240000The maximum amount of time (ms) to wait for state from neighboring caches, before throwing an exception and aborting startup.
chunk-sizeinteger512The number of cache entries to batch in each transfer.
await-initial-transferbooleantrueIf enabled, this will cause the cache to wait for initial state transfer to complete before responding to requests.
NameTypeDefaultDescription
mode
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
SYNCSets the clustered cache mode, ASYNC for asynchronous operation, or SYNC for synchronous operation.
remote-timeoutlong15000In SYNC mode, the timeout (in ms) used to wait for an acknowledgment when making a remote call, after which the call is aborted and an exception is thrown.

partition-handling?

Configures the way this cache reacts to node crashes and split brains.

NameTypeDefaultDescription
enabledboolean Deprecated, use type instead. Enable/disable the partition handling functionality. Defaults to false.
when-split
DENY_READ_WRITESIf the partition does not have all owners for a given segment, both reads and writes are denied for all keys in that segment.
ALLOW_READSAllows reads for a given key if it exists in this partition, but only allows writes if this partition contains all owners of a segment.
ALLOW_READ_WRITESAllow entries on each partition to diverge, with conflicts resolved during merge.
ALLOW_READ_WRITESThe type of actions that are possible when a split brain scenario is encountered.
merge-policyNONEThe entry merge policy which should be applied on partition merges.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
enabledbooleantrue Enables backup locations. Set the value to "false" to disable backups.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf 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.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

object

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as instance variables in the Java heap. Instances of byte[] are wrapped to ensure equality. This is the default storage format.

NameTypeDefaultDescription
sizelong-1 Eviction occurs when the number of entries exceeds the size.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

binary

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as bytes in the Java heap. Cache entries are serialized to binary representations. Note that binary storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

off-heap

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'OFF_HEAP'. Store keys and values as bytes in native memory. Cache entries are serialized to binary representations. Temporary objects are stored in the Java heap space until processing completes. Note that off-heap storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Specify whether indexing is enabled or not. Defaults to false, but it auto-activates if the indexing element is present and indexing is not explicitly disabled. It also auto-activates if 'auto-config' is set to 'true'.
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.

replicated-cache-configuration

Defines a REPL_* mode cache configuration.

NameTypeDefaultDescription
segmentsint256 Sets the number of hash space segments per cluster. The default value is 256. The value should be at least 20 * the cluster size.
consistent-hash-factorystring Deprecated since 11.0. Will be removed in 14.0, the segment allocation will no longer be customizable. The factory to use for generating the consistent hash. Must implement `org.infinispan.distribution.ch.ConsistentHashFactory`. E.g. `org.infinispan.distribution.ch.impl.SyncConsistentHashFactory` can be used to guarantee that multiple distributed caches use exactly the same consistent hash, which for performance reasons is not guaranteed by the default consistent hash factory instance used.
key-partitionerstring The name of the key partitioner class. Must implement `org.infinispan.distribution.ch.KeyPartitioner`. A custom key partitioner can be used as an alternative to grouping, to guarantee that some keys are located in the same segment (and thus their primary owner is the same node). Since 8.2.

state-transfer?

The state transfer configuration for distribution and replicated caches.

NameTypeDefaultDescription
enabledbooleantrueIf enabled, 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.
timeoutlong240000The maximum amount of time (ms) to wait for state from neighboring caches, before throwing an exception and aborting startup.
chunk-sizeinteger512The number of cache entries to batch in each transfer.
await-initial-transferbooleantrueIf enabled, this will cause the cache to wait for initial state transfer to complete before responding to requests.
NameTypeDefaultDescription
mode
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
SYNCSets the clustered cache mode, ASYNC for asynchronous operation, or SYNC for synchronous operation.
remote-timeoutlong15000In SYNC mode, the timeout (in ms) used to wait for an acknowledgment when making a remote call, after which the call is aborted and an exception is thrown.

partition-handling?

Configures the way this cache reacts to node crashes and split brains.

NameTypeDefaultDescription
enabledboolean Deprecated, use type instead. Enable/disable the partition handling functionality. Defaults to false.
when-split
DENY_READ_WRITESIf the partition does not have all owners for a given segment, both reads and writes are denied for all keys in that segment.
ALLOW_READSAllows reads for a given key if it exists in this partition, but only allows writes if this partition contains all owners of a segment.
ALLOW_READ_WRITESAllow entries on each partition to diverge, with conflicts resolved during merge.
ALLOW_READ_WRITESThe type of actions that are possible when a split brain scenario is encountered.
merge-policyNONEThe entry merge policy which should be applied on partition merges.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
enabledbooleantrue Enables backup locations. Set the value to "false" to disable backups.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf 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.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

object

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as instance variables in the Java heap. Instances of byte[] are wrapped to ensure equality. This is the default storage format.

NameTypeDefaultDescription
sizelong-1 Eviction occurs when the number of entries exceeds the size.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

binary

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as bytes in the Java heap. Cache entries are serialized to binary representations. Note that binary storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

off-heap

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'OFF_HEAP'. Store keys and values as bytes in native memory. Cache entries are serialized to binary representations. Temporary objects are stored in the Java heap space until processing completes. Note that off-heap storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Specify whether indexing is enabled or not. Defaults to false, but it auto-activates if the indexing element is present and indexing is not explicitly disabled. It also auto-activates if 'auto-config' is set to 'true'.
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.

invalidation-cache

Defines an INVALIDATION_* mode cache.

NameTypeDefaultDescription
mode
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
SYNCSets the clustered cache mode, ASYNC for asynchronous operation, or SYNC for synchronous operation.
remote-timeoutlong15000In SYNC mode, the timeout (in ms) used to wait for an acknowledgment when making a remote call, after which the call is aborted and an exception is thrown.

partition-handling?

Configures the way this cache reacts to node crashes and split brains.

NameTypeDefaultDescription
enabledboolean Deprecated, use type instead. Enable/disable the partition handling functionality. Defaults to false.
when-split
DENY_READ_WRITESIf the partition does not have all owners for a given segment, both reads and writes are denied for all keys in that segment.
ALLOW_READSAllows reads for a given key if it exists in this partition, but only allows writes if this partition contains all owners of a segment.
ALLOW_READ_WRITESAllow entries on each partition to diverge, with conflicts resolved during merge.
ALLOW_READ_WRITESThe type of actions that are possible when a split brain scenario is encountered.
merge-policyNONEThe entry merge policy which should be applied on partition merges.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
enabledbooleantrue Enables backup locations. Set the value to "false" to disable backups.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf 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.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

object

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as instance variables in the Java heap. Instances of byte[] are wrapped to ensure equality. This is the default storage format.

NameTypeDefaultDescription
sizelong-1 Eviction occurs when the number of entries exceeds the size.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

binary

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as bytes in the Java heap. Cache entries are serialized to binary representations. Note that binary storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

off-heap

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'OFF_HEAP'. Store keys and values as bytes in native memory. Cache entries are serialized to binary representations. Temporary objects are stored in the Java heap space until processing completes. Note that off-heap storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Specify whether indexing is enabled or not. Defaults to false, but it auto-activates if the indexing element is present and indexing is not explicitly disabled. It also auto-activates if 'auto-config' is set to 'true'.
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.

invalidation-cache-configuration

Defines an INVALIDATION_* mode cache configuration.

NameTypeDefaultDescription
mode
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
SYNCSets the clustered cache mode, ASYNC for asynchronous operation, or SYNC for synchronous operation.
remote-timeoutlong15000In SYNC mode, the timeout (in ms) used to wait for an acknowledgment when making a remote call, after which the call is aborted and an exception is thrown.

partition-handling?

Configures the way this cache reacts to node crashes and split brains.

NameTypeDefaultDescription
enabledboolean Deprecated, use type instead. Enable/disable the partition handling functionality. Defaults to false.
when-split
DENY_READ_WRITESIf the partition does not have all owners for a given segment, both reads and writes are denied for all keys in that segment.
ALLOW_READSAllows reads for a given key if it exists in this partition, but only allows writes if this partition contains all owners of a segment.
ALLOW_READ_WRITESAllow entries on each partition to diverge, with conflicts resolved during merge.
ALLOW_READ_WRITESThe type of actions that are possible when a split brain scenario is encountered.
merge-policyNONEThe entry merge policy which should be applied on partition merges.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
enabledbooleantrue Enables backup locations. Set the value to "false" to disable backups.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf 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.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

object

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as instance variables in the Java heap. Instances of byte[] are wrapped to ensure equality. This is the default storage format.

NameTypeDefaultDescription
sizelong-1 Eviction occurs when the number of entries exceeds the size.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

binary

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as bytes in the Java heap. Cache entries are serialized to binary representations. Note that binary storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

off-heap

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'OFF_HEAP'. Store keys and values as bytes in native memory. Cache entries are serialized to binary representations. Temporary objects are stored in the Java heap space until processing completes. Note that off-heap storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Specify whether indexing is enabled or not. Defaults to false, but it auto-activates if the indexing element is present and indexing is not explicitly disabled. It also auto-activates if 'auto-config' is set to 'true'.
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.

distributed-cache

Defines a DIST_* mode cache.

NameTypeDefaultDescription
ownersint2Number of cluster-wide replicas for each cache entry.
segmentsint256Sets the number of hash space segments per cluster. The default value is 256. The value should be at least 20 * the cluster size.
capacity-factordouble1.0Controls the proportion of entries that will reside on the local node, compared to the other nodes in the cluster. Value must be positive. The default is 1
l1-lifespanlongMaximum lifespan in milliseconds of an entry placed in the L1 cache. By default L1 is disabled unless a positive value is configured for this attribute. If the attribute is not present, L1 is disabled.
l1-cleanup-intervallong60000 Controls how often a cleanup task to prune L1 tracking data is run. Defaults to 10 minutes.
capacityfloat1.0 Controls the proportion of entries that will reside on the local node, compared to the other nodes in the cluster. This is just a suggestion, there is no guarantee that a node with a capacity factor of 2 will have twice as many entries as a node with a capacity factor of 1.
consistent-hash-factorystring The factory to use for generating the consistent hash. Must implement `org.infinispan.distribution.ch.ConsistentHashFactory`. E.g. `org.infinispan.distribution.ch.impl.SyncConsistentHashFactory` can be used to guarantee that multiple distributed caches use exactly the same consistent hash, which for performance reasons is not guaranteed by the default consistent hash factory instance used.
key-partitionerstring The name of the key partitioner class. Must implement `org.infinispan.distribution.ch.KeyPartitioner`. A custom key partitioner can be used as an alternative to grouping, to guarantee that some keys are located in the same segment (and thus their primary owner is the same node). Since 8.2.

state-transfer?

The state transfer configuration for distribution and replicated caches.

NameTypeDefaultDescription
enabledbooleantrueIf enabled, 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.
timeoutlong240000The maximum amount of time (ms) to wait for state from neighboring caches, before throwing an exception and aborting startup.
chunk-sizeinteger512The number of cache entries to batch in each transfer.
await-initial-transferbooleantrueIf enabled, this will cause the cache to wait for initial state transfer to complete before responding to requests.

groups?

Configures grouping of data.

NameTypeDefaultDescription
enabledboolean Enables or disables grouping.

grouper*

NameTypeDefaultDescription
classstring The class to use to group keys. Must implement org.infinispan.distribution.group.Grouper.
NameTypeDefaultDescription
mode
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
SYNCSets the clustered cache mode, ASYNC for asynchronous operation, or SYNC for synchronous operation.
remote-timeoutlong15000In SYNC mode, the timeout (in ms) used to wait for an acknowledgment when making a remote call, after which the call is aborted and an exception is thrown.

partition-handling?

Configures the way this cache reacts to node crashes and split brains.

NameTypeDefaultDescription
enabledboolean Deprecated, use type instead. Enable/disable the partition handling functionality. Defaults to false.
when-split
DENY_READ_WRITESIf the partition does not have all owners for a given segment, both reads and writes are denied for all keys in that segment.
ALLOW_READSAllows reads for a given key if it exists in this partition, but only allows writes if this partition contains all owners of a segment.
ALLOW_READ_WRITESAllow entries on each partition to diverge, with conflicts resolved during merge.
ALLOW_READ_WRITESThe type of actions that are possible when a split brain scenario is encountered.
merge-policyNONEThe entry merge policy which should be applied on partition merges.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
enabledbooleantrue Enables backup locations. Set the value to "false" to disable backups.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf 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.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

object

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as instance variables in the Java heap. Instances of byte[] are wrapped to ensure equality. This is the default storage format.

NameTypeDefaultDescription
sizelong-1 Eviction occurs when the number of entries exceeds the size.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

binary

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as bytes in the Java heap. Cache entries are serialized to binary representations. Note that binary storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

off-heap

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'OFF_HEAP'. Store keys and values as bytes in native memory. Cache entries are serialized to binary representations. Temporary objects are stored in the Java heap space until processing completes. Note that off-heap storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Specify whether indexing is enabled or not. Defaults to false, but it auto-activates if the indexing element is present and indexing is not explicitly disabled. It also auto-activates if 'auto-config' is set to 'true'.
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.

distributed-cache-configuration

Defines a DIST_* mode cache configuration.

NameTypeDefaultDescription
ownersint2Number of cluster-wide replicas for each cache entry.
segmentsint256Sets the number of hash space segments per cluster. The default value is 256. The value should be at least 20 * the cluster size.
capacity-factordouble1.0Controls the proportion of entries that will reside on the local node, compared to the other nodes in the cluster. Value must be positive. The default is 1
l1-lifespanlongMaximum lifespan in milliseconds of an entry placed in the L1 cache. By default L1 is disabled unless a positive value is configured for this attribute. If the attribute is not present, L1 is disabled.
l1-cleanup-intervallong60000 Controls how often a cleanup task to prune L1 tracking data is run. Defaults to 10 minutes.
capacityfloat1.0 Controls the proportion of entries that will reside on the local node, compared to the other nodes in the cluster. This is just a suggestion, there is no guarantee that a node with a capacity factor of 2 will have twice as many entries as a node with a capacity factor of 1.
consistent-hash-factorystring The factory to use for generating the consistent hash. Must implement `org.infinispan.distribution.ch.ConsistentHashFactory`. E.g. `org.infinispan.distribution.ch.impl.SyncConsistentHashFactory` can be used to guarantee that multiple distributed caches use exactly the same consistent hash, which for performance reasons is not guaranteed by the default consistent hash factory instance used.
key-partitionerstring The name of the key partitioner class. Must implement `org.infinispan.distribution.ch.KeyPartitioner`. A custom key partitioner can be used as an alternative to grouping, to guarantee that some keys are located in the same segment (and thus their primary owner is the same node). Since 8.2.

state-transfer?

The state transfer configuration for distribution and replicated caches.

NameTypeDefaultDescription
enabledbooleantrueIf enabled, 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.
timeoutlong240000The maximum amount of time (ms) to wait for state from neighboring caches, before throwing an exception and aborting startup.
chunk-sizeinteger512The number of cache entries to batch in each transfer.
await-initial-transferbooleantrueIf enabled, this will cause the cache to wait for initial state transfer to complete before responding to requests.

groups?

Configures grouping of data.

NameTypeDefaultDescription
enabledboolean Enables or disables grouping.

grouper*

NameTypeDefaultDescription
classstring The class to use to group keys. Must implement org.infinispan.distribution.group.Grouper.
NameTypeDefaultDescription
mode
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
SYNCSets the clustered cache mode, ASYNC for asynchronous operation, or SYNC for synchronous operation.
remote-timeoutlong15000In SYNC mode, the timeout (in ms) used to wait for an acknowledgment when making a remote call, after which the call is aborted and an exception is thrown.

partition-handling?

Configures the way this cache reacts to node crashes and split brains.

NameTypeDefaultDescription
enabledboolean Deprecated, use type instead. Enable/disable the partition handling functionality. Defaults to false.
when-split
DENY_READ_WRITESIf the partition does not have all owners for a given segment, both reads and writes are denied for all keys in that segment.
ALLOW_READSAllows reads for a given key if it exists in this partition, but only allows writes if this partition contains all owners of a segment.
ALLOW_READ_WRITESAllow entries on each partition to diverge, with conflicts resolved during merge.
ALLOW_READ_WRITESThe type of actions that are possible when a split brain scenario is encountered.
merge-policyNONEThe entry merge policy which should be applied on partition merges.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
enabledbooleantrue Enables backup locations. Set the value to "false" to disable backups.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf 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.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

object

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as instance variables in the Java heap. Instances of byte[] are wrapped to ensure equality. This is the default storage format.

NameTypeDefaultDescription
sizelong-1 Eviction occurs when the number of entries exceeds the size.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

binary

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as bytes in the Java heap. Cache entries are serialized to binary representations. Note that binary storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

off-heap

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'OFF_HEAP'. Store keys and values as bytes in native memory. Cache entries are serialized to binary representations. Temporary objects are stored in the Java heap space until processing completes. Note that off-heap storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Specify whether indexing is enabled or not. Defaults to false, but it auto-activates if the indexing element is present and indexing is not explicitly disabled. It also auto-activates if 'auto-config' is set to 'true'.
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.

scattered-cache

Defines a SCATTERED_* mode cache. Since 9.0.

NameTypeDefaultDescription
segmentsint256Number of hash space segments (per cluster). The default value is 256, and should be at least 20 * cluster size.
capacityfloat1 Controls the proportion of entries that will reside on the local node, compared to the other nodes in the cluster. This is just a suggestion, there is no guarantee that a node with a capacity factor of 2 will have twice as many entries as a node with a capacity factor of 1.
consistent-hash-factorystring The factory to use for generating the consistent hash. Must implement `org.infinispan.distribution.ch.ConsistentHashFactory`. E.g. `org.infinispan.distribution.ch.impl.SyncConsistentHashFactory` can be used to guarantee that multiple distributed caches use exactly the same consistent hash, which for performance reasons is not guaranteed by the default consistent hash factory instance used.
key-partitionerstring The name of the key partitioner class. Must implement `org.infinispan.distribution.ch.KeyPartitioner`. A custom key partitioner can be used as an alternative to grouping, to guarantee that some keys are located in the same segment (and thus their primary owner is the same node). Since 8.2.
invalidation-batch-sizeinteger128 Threshold for sending batch invalidations. Once a node registers more updated keys, it sends a batch invalidation to all nodes requesting to remove old versions of the entries. The threshold is also used for second batch invalidation of tombstones for removed entries.
bias-acquisition
NEVERThe bias is never acquired.
ON_WRITEBias is acquired by the writing entry.
ON_WRITE Specifies when is a node allowed to acquire a bias on an entry, serving further reads to the same key locally (despite not being an owner). Acquired bias allows reading data on non-owner, but slows down further writes from other nodes.
bias-lifespanlong300000 Specifies the duration (in Milliseconds) that acquired bias can be held; while the reads will never be stale, tracking that information consumes memory on the primary owner.

state-transfer?

The state transfer configuration for distribution and replicated caches.

NameTypeDefaultDescription
enabledbooleantrueIf enabled, 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.
timeoutlong240000The maximum amount of time (ms) to wait for state from neighboring caches, before throwing an exception and aborting startup.
chunk-sizeinteger512The number of cache entries to batch in each transfer.
await-initial-transferbooleantrueIf enabled, this will cause the cache to wait for initial state transfer to complete before responding to requests.

groups?

Configures grouping of data.

NameTypeDefaultDescription
enabledboolean Enables or disables grouping.

grouper*

NameTypeDefaultDescription
classstring The class to use to group keys. Must implement org.infinispan.distribution.group.Grouper.
NameTypeDefaultDescription
mode
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
SYNCSets the clustered cache mode, ASYNC for asynchronous operation, or SYNC for synchronous operation.
remote-timeoutlong15000In SYNC mode, the timeout (in ms) used to wait for an acknowledgment when making a remote call, after which the call is aborted and an exception is thrown.

partition-handling?

Configures the way this cache reacts to node crashes and split brains.

NameTypeDefaultDescription
enabledboolean Deprecated, use type instead. Enable/disable the partition handling functionality. Defaults to false.
when-split
DENY_READ_WRITESIf the partition does not have all owners for a given segment, both reads and writes are denied for all keys in that segment.
ALLOW_READSAllows reads for a given key if it exists in this partition, but only allows writes if this partition contains all owners of a segment.
ALLOW_READ_WRITESAllow entries on each partition to diverge, with conflicts resolved during merge.
ALLOW_READ_WRITESThe type of actions that are possible when a split brain scenario is encountered.
merge-policyNONEThe entry merge policy which should be applied on partition merges.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
enabledbooleantrue Enables backup locations. Set the value to "false" to disable backups.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf 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.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

object

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as instance variables in the Java heap. Instances of byte[] are wrapped to ensure equality. This is the default storage format.

NameTypeDefaultDescription
sizelong-1 Eviction occurs when the number of entries exceeds the size.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

binary

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as bytes in the Java heap. Cache entries are serialized to binary representations. Note that binary storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

off-heap

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'OFF_HEAP'. Store keys and values as bytes in native memory. Cache entries are serialized to binary representations. Temporary objects are stored in the Java heap space until processing completes. Note that off-heap storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Specify whether indexing is enabled or not. Defaults to false, but it auto-activates if the indexing element is present and indexing is not explicitly disabled. It also auto-activates if 'auto-config' is set to 'true'.
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.

scattered-cache-configuration

Defines a SCATTERED_* mode cache configuration. Since 9.0.

NameTypeDefaultDescription
segmentsint256Number of hash space segments (per cluster). The default value is 256, and should be at least 20 * cluster size.
capacityfloat1 Controls the proportion of entries that will reside on the local node, compared to the other nodes in the cluster. This is just a suggestion, there is no guarantee that a node with a capacity factor of 2 will have twice as many entries as a node with a capacity factor of 1.
consistent-hash-factorystring The factory to use for generating the consistent hash. Must implement `org.infinispan.distribution.ch.ConsistentHashFactory`. E.g. `org.infinispan.distribution.ch.impl.SyncConsistentHashFactory` can be used to guarantee that multiple distributed caches use exactly the same consistent hash, which for performance reasons is not guaranteed by the default consistent hash factory instance used.
key-partitionerstring The name of the key partitioner class. Must implement `org.infinispan.distribution.ch.KeyPartitioner`. A custom key partitioner can be used as an alternative to grouping, to guarantee that some keys are located in the same segment (and thus their primary owner is the same node). Since 8.2.
invalidation-batch-sizeinteger128 Threshold for sending batch invalidations. Once a node registers more updated keys, it sends a batch invalidation to all nodes requesting to remove old versions of the entries. The threshold is also used for second batch invalidation of tombstones for removed entries.
bias-acquisition
NEVERThe bias is never acquired.
ON_WRITEBias is acquired by the writing entry.
ON_WRITE Specifies when is a node allowed to acquire a bias on an entry, serving further reads to the same key locally (despite not being an owner). Acquired bias allows reading data on non-owner, but slows down further writes from other nodes.
bias-lifespanlong300000 Specifies the duration (in Milliseconds) that acquired bias can be held; while the reads will never be stale, tracking that information consumes memory on the primary owner.

state-transfer?

The state transfer configuration for distribution and replicated caches.

NameTypeDefaultDescription
enabledbooleantrueIf enabled, 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.
timeoutlong240000The maximum amount of time (ms) to wait for state from neighboring caches, before throwing an exception and aborting startup.
chunk-sizeinteger512The number of cache entries to batch in each transfer.
await-initial-transferbooleantrueIf enabled, this will cause the cache to wait for initial state transfer to complete before responding to requests.

groups?

Configures grouping of data.

NameTypeDefaultDescription
enabledboolean Enables or disables grouping.

grouper*

NameTypeDefaultDescription
classstring The class to use to group keys. Must implement org.infinispan.distribution.group.Grouper.
NameTypeDefaultDescription
mode
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
SYNCSets the clustered cache mode, ASYNC for asynchronous operation, or SYNC for synchronous operation.
remote-timeoutlong15000In SYNC mode, the timeout (in ms) used to wait for an acknowledgment when making a remote call, after which the call is aborted and an exception is thrown.

partition-handling?

Configures the way this cache reacts to node crashes and split brains.

NameTypeDefaultDescription
enabledboolean Deprecated, use type instead. Enable/disable the partition handling functionality. Defaults to false.
when-split
DENY_READ_WRITESIf the partition does not have all owners for a given segment, both reads and writes are denied for all keys in that segment.
ALLOW_READSAllows reads for a given key if it exists in this partition, but only allows writes if this partition contains all owners of a segment.
ALLOW_READ_WRITESAllow entries on each partition to diverge, with conflicts resolved during merge.
ALLOW_READ_WRITESThe type of actions that are possible when a split brain scenario is encountered.
merge-policyNONEThe entry merge policy which should be applied on partition merges.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
enabledbooleantrue Enables backup locations. Set the value to "false" to disable backups.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf 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.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis 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.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf 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. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

object

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as instance variables in the Java heap. Instances of byte[] are wrapped to ensure equality. This is the default storage format.

NameTypeDefaultDescription
sizelong-1 Eviction occurs when the number of entries exceeds the size.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

binary

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'HEAP'. Store keys and values as bytes in the Java heap. Cache entries are serialized to binary representations. Note that binary storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

off-heap

Deprecated since 11.0. Use instead the 'encoding' element to specify the media type of keys and values, plus the storage attribute as 'OFF_HEAP'. Store keys and values as bytes in native memory. Cache entries are serialized to binary representations. Temporary objects are stored in the Java heap space until processing completes. Note that off-heap storage violates object equality. This occurs because equality is determined by the equivalence of the resulting byte[] instead of the object instances.

NameTypeDefaultDescription
sizelong-1 Defines the size of the data container as a long. Eviction occurs either when the number of entries or amount of memory exceeds the size.
eviction
COUNT Evict entries from the cache when the number of entries reaches the configured size.
MEMORY Evict entries from the cache when the amount of memory in use reaches the configured size.
Specifies whether eviction is based on the number of entries or the amount of memory used.
strategy
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define the size of the data container. If you specify a value for size, then you should configure a strategy.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Specify whether indexing is enabled or not. Defaults to false, but it auto-activates if the indexing element is present and indexing is not explicitly disabled. It also auto-activates if 'auto-config' is set to 'true'.
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.
Expand/Collapse All