10.2. Configure Locking (Library Mode)
For Library mode, the
locking
element and its parameters are set within the optional configuration
element on a per cache basis. For example, for the default cache, the configuration
element occurs within the default
element and for each named cache, it occurs within the namedCache
element. The following is an example of this configuration:
Procedure 10.2. Configure Locking (Library Mode)
Set the Concurrency Level
TheconcurrencyLevel
parameter specifies the concurrency level for the lock container. Set this value according to the number of concurrent threads interacting with the data grid.<infinispan> ... <default> <locking concurrencyLevel="${VALUE}" />
Specify the Cache Isolation Level
TheisolationLevel
parameter specifies the cache's isolation level. Valid isolation levels areREAD_COMMITTED
andREPEATABLE_READ
. For details about isolation levels, see Section 12.1, “About Isolation Levels”<infinispan> ... <default> <locking concurrencyLevel="${VALUE}" isolationLevel="${LEVEL}" />
Set the Lock Acquisition Timeout
ThelockAcquisitionTimeout
parameter specifies time (in milliseconds) after which a lock acquisition attempt times out.<infinispan> ... <default> <locking concurrencyLevel="${VALUE}" isolationLevel="${LEVEL}" lockAcquisitionTimeout="${TIME}" />
Configure Lock Striping
TheuseLockStriping
parameter specifies whether a pool of shared locks are maintained for all entries that require locks. If set toFALSE
, locks are created for each entry in the cache. For details, see Section 11.1, “About Lock Striping”<infinispan> ... <default> <locking concurrencyLevel="${VALUE}" isolationLevel="${LEVEL}" lockAcquisitionTimeout="${TIME}" useLockStriping="${TRUE/FALSE}" />
Set
writeSkewCheck
ParameterThewriteSkewCheck
parameter is only valid if theisolationLevel
is set toREPEATABLE_READ
. If this parameter is set toFALSE
, a disparity between a working entry and the underlying entry at write time results in the working entry overwriting the underlying entry. If the parameter is set toTRUE
, such conflicts (namely write skews) throw an exception.<infinispan> ... <default> <locking concurrencyLevel="${VALUE}" isolationLevel="${LEVEL}" lockAcquisitionTimeout="${TIME}" useLockStriping="${TRUE/FALSE}" writeSkewCheck="${TRUE/FALSE}" />