14.2. Configure Locking (Library Mode)

For Library mode, the locking element and its parameters are set within the default element and for each named cache, it occurs within the namedCache element. The following is an example of this configuration:

Procedure 14.2. Configure Locking (Library Mode)

<infinispan>
	<!-- Other configuration elements here -->
	<default>
		<locking concurrencyLevel="${VALUE}"
			isolationLevel="${LEVEL}"
			lockAcquisitionTimeout="${TIME}"
			useLockStriping="${TRUE/FALSE}"
			writeSkewCheck="${TRUE/FALSE}" />
  1. The concurrencyLevel parameter specifies the concurrency level for the lock container. Set this value according to the number of concurrent threads interacting with the data grid.
  2. The isolationLevel parameter specifies the cache's isolation level. Valid isolation levels are READ_COMMITTED and REPEATABLE_READ. For details about isolation levels, see Section 16.1, “About Isolation Levels”
  3. The lockAcquisitionTimeout parameter specifies time (in milliseconds) after which a lock acquisition attempt times out.
  4. The useLockStriping parameter specifies whether a pool of shared locks are maintained for all entries that require locks. If set to FALSE, locks are created for each entry in the cache. For details, see Section 15.1, “About Lock Striping”
  5. The writeSkewCheck parameter is only valid if the isolationLevel is set to REPEATABLE_READ. If this parameter is set to FALSE, 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 to TRUE, such conflicts (namely write skews) throw an exception. The writeSkewCheck parameter can be only used with OPTIMISTIC transactions and it requires entry versioning to be enabled, with SIMPLE versioning scheme.