7.6. Configure Distribution Mode (Library Mode)
Procedure 7.2. Distributed Cache Configuration
Set the Clustered Mode
Theclustering
element'smode
parameter's value determines the clustering mode selected for the cache.<clustering mode="dist">
Specify the Remote Call Timeout
Thesync
element'sreplTimeout
parameter specifies the maximum time period in milliseconds for an acknowledgment after a remote call. If the time period ends without any acknowledgment, an exception is thrown.<clustering mode="dist"> <sync replTimeout="${TIME}" />
Define State Transfer Settings
ThestateTransfer
element specifies how state is transferred when a node leaves or joins the cluster. It uses the following parameters:Specify State Transfer Batch Size
ThechunkSize
parameter specifies the size of cache entry state batches to be transferred. If this value is greater than0
, the value set is the size of chunks sent. If the value is less than0
, all states are transferred at the same time.<clustering mode="dist"> <sync replTimeout="${TIME}" /> <stateTransfer chunkSize="${SIZE}" />
Set
fetchInMemoryState
ParameterThefetchInMemoryState
parameter when set totrue
, requests state information from neighboring caches on start up. This impacts the start up time for the cache.<clustering mode="dist"> <sync replTimeout="${TIME}" /> <stateTransfer chunkSize="${SIZE}" fetchInMemoryState="{true/false}" />
Define the
awaitInitialTransfer
ParameterTheawaitInitialTransfer
parameter causes the first call to methodCacheManager.getCache()
on the joiner node to block and wait until the joining is complete and the cache has finished receiving state from neighboring caches (iffetchInMemoryState
is enabled). This option applies to distributed and replicated caches only and is enabled by default.<clustering mode="dist"> <sync replTimeout="${TIME}" /> <stateTransfer chunkSize="${SIZE}" fetchInMemoryState="{true/false}" awaitInitialTransfer="{true/false}" />
Set
timeout
ValueThetimeout
parameter specifies the maximum time (in milliseconds) the cache waits for responses from neighboring caches with the requested states. If no response is received within the thetimeout
period, the start up process aborts and an exception is thrown.<clustering mode="dist"> <sync replTimeout="${TIME}" /> <stateTransfer chunkSize="${SIZE}" fetchInMemoryState="{true/false}" awaitInitialTransfer="{true/false}" timeout="${TIME}" />
Specify Transport Configuration
Thetransport
element defines the transport configuration for the cache as follows:Specify the Cluster Name
TheclusterName
parameter specifies the name of the cluster. Nodes can only connect to clusters that share the same name.<clustering mode="dist"> <sync replTimeout="${TIME}" /> <stateTransfer chunkSize="${SIZE}" fetchInMemoryState="{true/false}" awaitInitialTransfer="{true/false}" timeout="${TIME}" /> <transport clusterName="${NAME}" />
Set the
distributedSyncTimeout
ValueThedistributedSyncTimeout
parameter specifies the time to wait to acquire a lock on the distributed lock. This distributed lock ensures that a single cache can transfer state or rehash state at a time.<clustering mode="dist"> <sync replTimeout="${TIME}" /> <stateTransfer chunkSize="${SIZE}" fetchInMemoryState="{true/false}" awaitInitialTransfer="{true/false}" timeout="${TIME}" /> <transport clusterName="${NAME}" distributedSyncTimeout="${TIME}" />
Set the Network Transport
ThetransportClass
parameter specifies a class that represents a network transport for the cache.<clustering mode="dist"> <sync replTimeout="${TIME}" /> <stateTransfer chunkSize="${SIZE}" fetchInMemoryState="{true/false}" awaitInitialTransfer="{true/false}" timeout="${TIME}" /> <transport clusterName="${NAME}" distributedSyncTimeout="${TIME}" transportClass="${CLASS}" /> </clustering>