此内容没有您所选择的语言版本。
16.2.3. Configure the Cache Loader Programmatically
The following example demonstrates how to configure the cache loader programmatically.
Procedure 16.2. Configure the Cache Loader Programatically
Create a New Configuration Builder
Use theConfigurationBuilderto create a new configuration object.ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence()
ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence()Copy to Clipboard Copied! Toggle word wrap Toggle overflow Set Passivation
passivationaffects the way Red Hat JBoss Data Grid interacts with loaders. Passivation removes an object from in-memory cache and writes it to a secondary data loader, such as a system or database. Passivation isfalseby default.ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence() .passivation(false)ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence() .passivation(false)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Set Up Sharing
sharedindicates that the cache loader is shared by different cache instances. For example, where all instances in a cluster use the same JDBC settings to talk to the same remote, shared database.sharedisfalseby default. When set totrue, it prevents duplicate data being written to the cache loader by different cache instances.ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence() .passivation(false) .shared(false)ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence() .passivation(false) .shared(false)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Set Up Preloading
preloadis set tofalseby default. When set totruethe data stored in the cache loader is preloaded into the memory when the cache starts. This allows data in the cache loader to be available immediately after startup and avoids cache operations delays as a result of loading data lazily. Preloaded data is only stored locally on the node, and there is no replication or distribution of the preloaded data. JBoss Data Grid will only preload up to the maximum configured number of entries in eviction.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configure the Cache Loader
addSingleFileStore()adds the SingleFileStore as the cache loader for this configuration. It is possible to create other stores, such as a JDBC Cache Store, which can be added using theaddLoadermethod.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Set Up Persistence
fetchPersistentStatedetermines whether or not to fetch the persistent state of a cache and apply it to the local cache loader when joining the cluster. If the cache loader is shared the fetch persistent state is ignored, as caches access the same cache loader. A configuration exception will be thrown when starting the cache service if more than one cache loader has this property set totrue. ThefetchPersistentStateproperty isfalseby default.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Set Up Purging
purgeSynchronouslycontrols whether expiration occurs in the eviction thread. When set totrue, the eviction thread will block until the purge is finished, rather than bring returned immediately. ThepurgeSychronouslyproperty is set tofalseby default. If the cache loader supports multi-thread purge,purgeThreadsare used to purge expired entries.purgeThreadsis set to1by default. Check cache loader configuration to determine if multi-thread purge is supported.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Set Modifications
ignoreModificationsdetermines whether write methods are pushed to the specific cache loader by allowing write operations to the local file cache loader, but not the shared cache loader. In some cases, transient application data should only reside in a file-based cache loader on the same server as the in-memory cache. For example, this would apply with a further JDBC based cache loader used by all servers in the network.ignoreModificationsisfalseby default.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Asynchronous Settings
These attributes configure aspects specific to each cache loader. For example, thelocationattribute points to where the SingleFileStore will keep files containing data. Other loaders may require more complex configuration.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configure Singletons
singletonStoreenables modifications to be stored by only one node in the cluster. This node is called the coordinator. The coordinator pushes the caches in-memory states to disk. This function is activated by setting theenabledattribute totruein all nodes. Thesharedparameter cannot be defined withsingletonStoreenabled at the same time. Theenabledattribute isfalseby default.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Set Up Push States
pushStateWhenCoordinatoris set totrueby default. Iftrue, this property will cause a node that has become the coordinator to transfer in-memory state to the underlying cache loader. This parameter is useful where the coordinator has crashed and a new coordinator is elected.Copy to Clipboard Copied! Toggle word wrap Toggle overflow