Dynamically changing the configuration of some options while the cache is running is supported, by programmatically obtaining the
Configuration object from the running cache and changing values. E.g.,
Configuration liveConfig = cache.getConfiguration(); liveConfig.setLockAcquisitionTimeout(2000);
A complete listing of which options may be changed dynamically is in the Section 11.2, “Configuration File Quick Reference” section. An
org.jboss.cache.config.ConfigurationException will be thrown if you attempt to change a setting that is not dynamic.
The Option API allows you to override certain behaviors of the cache on a per invocation basis. This involves creating an instance of
org.jboss.cache.config.Option , setting the options you wish to override on the Option object and passing it in the InvocationContext before invoking your method on the cache.
E.g., to force a write lock when reading data (when used in a transaction, this provides semantics similar to SELECT FOR UPDATE in a database)
// first start a transaction
cache.getInvocationContext().getOptionOverrides().setForceWriteLock(true);
Node n = cache.getNode(Fqn.fromString("/a/b/c"));
// make changes to the node
// commit transaction
E.g., to suppress replication of a put call in a REPL_SYNC cache:
Node node = cache.getChild(Fqn.fromString("/a/b/c"));
cache.getInvocationContext().getOptionOverrides().setLocalOnly(true);
node.put("localCounter", new Integer(2));
See the Javadocs on the
Option class for details on the options available.