JBoss.orgCommunity Documentation

JBoss Cache Users' Guide

A clustered, transactional cache

Release 3.0.0 Naga

October 2008


Preface
I. Introduction to JBoss Cache
1. Overview
1.1. What is JBoss Cache?
1.1.1. And what is POJO Cache?
1.2. Summary of Features
1.2.1. Caching objects
1.2.2. Local and clustered modes
1.2.3. Clustered caches and transactions
1.2.4. Thread safety
1.3. Requirements
1.4. License
2. User API
2.1. API Classes
2.2. Instantiating and Starting the Cache
2.3. Caching and Retrieving Data
2.3.1. Organizing Your Data and Using the Node Structure
2.4. The Fqn Class
2.5. Stopping and Destroying the Cache
2.6. Cache Modes
2.7. Adding a Cache Listener - registering for cache events
2.7.1. Synchronous and Asynchronous Notifications
2.8. Using Cache Loaders
2.9. Using Eviction Policies
3. Configuration
3.1. Configuration Overview
3.2. Creating a Configuration
3.2.1. Parsing an XML-based Configuration File
3.2.2. Validating Configuration Files
3.2.3. Programmatic Configuration
3.2.4. Using an IOC Framework
3.3. Composition of a Configuration Object
3.4. Dynamic Reconfiguration
3.4.1. Overriding the Configuration via the Option API
4. Batching API
4.1. Introduction
4.2. Configuring batching
4.3. Batching API
5. Deploying JBoss Cache
5.1. Standalone Use/Programatic Deployment
5.2. Via JBoss Microcontainer (JBoss AS 5.x)
5.3. Automatic binding to JNDI in JBoss AS
5.4. Runtime Management Information
5.4.1. JBoss Cache MBeans
5.4.2. Registering the CacheJmxWrapper with the MBeanServer
5.4.3. JBoss Cache Statistics
5.4.4. Receiving JMX Notifications
5.4.5. Accessing Cache MBeans in a Standalone Environment using the jconsole Utility
6. Version Compatibility and Interoperability
6.1. API compatibility
6.2. Wire-level interoperability
6.3. Compatibility Matrix
II. JBoss Cache Architecture
7. Architecture
7.1. Data Structures Within The Cache
7.2. SPI Interfaces
7.3. Method Invocations On Nodes
7.3.1. Interceptors
7.3.2. Commands and Visitors
7.3.3. InvocationContexts
7.4. Managers For Subsystems
7.4.1. RpcManager
7.4.2. BuddyManager
7.4.3. CacheLoaderManager
7.5. Marshalling And Wire Formats
7.5.1. The Marshaller Interface
7.5.2. VersionAwareMarshaller
7.6. Class Loading and Regions
8. Cache Modes and Clustering
8.1. Cache Replication Modes
8.1.1. Local Mode
8.1.2. Replicated Caches
8.2. Invalidation
8.3. State Transfer
8.3.1. State Transfer Types
8.3.2. Byte array and streaming based state transfer
8.3.3. Full and partial state transfer
8.3.4. Transient ("in-memory") and persistent state transfer
8.3.5. Configuring State Transfer
9. Cache Loaders
9.1. The CacheLoader Interface and Lifecycle
9.2. Configuration
9.2.1. Singleton Store Configuration
9.3. Shipped Implementations
9.3.1. File system based cache loaders
9.3.2. Cache loaders that delegate to other caches
9.3.3. JDBCCacheLoader
9.3.4. S3CacheLoader
9.3.5. TcpDelegatingCacheLoader
9.3.6. Transforming Cache Loaders
9.4. Cache Passivation
9.4.1. Cache Loader Behavior with Passivation Disabled vs. Enabled
9.5. Strategies
9.5.1. Local Cache With Store
9.5.2. Replicated Caches With All Caches Sharing The Same Store
9.5.3. Replicated Caches With Only One Cache Having A Store
9.5.4. Replicated Caches With Each Cache Having Its Own Store
9.5.5. Hierarchical Caches
9.5.6. Multiple Cache Loaders
10. Eviction
10.1. Design
10.1.1. Collecting Statistics
10.1.2. Determining Which Nodes to Evict
10.1.3. How Nodes are Evicted
10.1.4. Eviction threads
10.2. Eviction Regions
10.2.1. Resident Nodes
10.3. Configuring Eviction
10.3.1. Basic Configuration
10.3.2. Programmatic Configuration
10.4. Shipped Eviction Policies
10.4.1. LRUAlgorithm - Least Recently Used
10.4.2. FIFOAlgorithm - First In, First Out
10.4.3. MRUAlgorithm - Most Recently Used
10.4.4. LFUAlgorithm - Least Frequently Used
10.4.5. ExpirationAlgorithm
10.4.6. ElementSizeAlgorithm - Eviction based on number of key/value pairs in a node
11. Transactions and Concurrency
11.1. Concurrent Access
11.1.1. Multi-Version Concurrency Control (MVCC)
11.1.2. Pessimistic and Optimistic Locking Schemes
11.2. JTA Support
III. JBoss Cache Configuration References
12. Configuration References
12.1. Sample XML Configuration File
12.1.1. XML validation
12.2. Configuration File Quick Reference
13. JMX References
13.1. JBoss Cache Statistics
13.2. JMX MBean Notifications