Jump To Close Expand all Collapse all Table of contents Red Hat Data Grid User Guide 1. Introduction Expand section "1. Introduction" Collapse section "1. Introduction" 1.1. What is Red Hat Data Grid ? 1.2. Why use Red Hat Data Grid ? Expand section "1.2. Why use Red Hat Data Grid ?" Collapse section "1.2. Why use Red Hat Data Grid ?" 1.2.1. As a local cache 1.2.2. As a clustered cache 1.2.3. As a clustering building block for your applications 1.2.4. As a remote cache 1.2.5. As a data grid 1.2.6. As a geographical backup for your data 2. The Embedded CacheManager Expand section "2. The Embedded CacheManager" Collapse section "2. The Embedded CacheManager" 2.1. Configuration Expand section "2.1. Configuration" Collapse section "2.1. Configuration" 2.1.1. Configuring caches declaratively Expand section "2.1.1. Configuring caches declaratively" Collapse section "2.1.1. Configuring caches declaratively" 2.1.1.1. Cache configuration templates 2.1.1.2. Cache configuration wildcards 2.1.1.3. Declarative configuration reference 2.1.2. Configuring caches programmatically Expand section "2.1.2. Configuring caches programmatically" Collapse section "2.1.2. Configuring caches programmatically" 2.1.2.1. ConfigurationBuilder Programmatic Configuration API 2.1.2.2. Configuring the transport 2.1.2.3. Using a custom JChannel 2.1.2.4. Enabling JMX MBeans and statistics 2.1.2.5. Configuring the thread pools 2.1.2.6. Configuring transactions and locking 2.1.2.7. Configuring cache stores 2.1.2.8. Advanced programmatic configuration 2.1.3. Configuration Migration Tools 2.1.4. Clustered Configuration Expand section "2.1.4. Clustered Configuration" Collapse section "2.1.4. Clustered Configuration" 2.1.4.1. Using an external JGroups file 2.1.4.2. Use one of the pre-configured JGroups files Expand section "2.1.4.2. Use one of the pre-configured JGroups files" Collapse section "2.1.4.2. Use one of the pre-configured JGroups files" 2.1.4.2.1. Tuning JGroups settings 2.1.4.3. Further reading 2.2. Obtaining caches 2.3. Clustering Information Expand section "2.3. Clustering Information" Collapse section "2.3. Clustering Information" 2.3.1. Member Information 2.3.2. Other methods 3. The Cache API Expand section "3. The Cache API" Collapse section "3. The Cache API" 3.1. The Cache interface Expand section "3.1. The Cache interface" Collapse section "3.1. The Cache interface" 3.1.1. Performance Concerns of Certain Map Methods 3.1.2. Mortal and Immortal Data 3.1.3. Expiration and Mortal Data 3.1.4. putForExternalRead operation 3.2. The AdvancedCache interface Expand section "3.2. The AdvancedCache interface" Collapse section "3.2. The AdvancedCache interface" 3.2.1. Flags 3.2.2. Custom Interceptors 3.3. Listeners and Notifications Expand section "3.3. Listeners and Notifications" Collapse section "3.3. Listeners and Notifications" 3.3.1. Cache-level notifications Expand section "3.3.1. Cache-level notifications" Collapse section "3.3.1. Cache-level notifications" 3.3.1.1. Cluster Listeners 3.3.1.2. Event filtering and conversion 3.3.1.3. Initial State Events 3.3.1.4. Duplicate Events 3.3.2. Cache manager-level notifications 3.3.3. Synchronicity of events Expand section "3.3.3. Synchronicity of events" Collapse section "3.3.3. Synchronicity of events" 3.3.3.1. Asynchronous thread pool 3.4. Asynchronous API Expand section "3.4. Asynchronous API" Collapse section "3.4. Asynchronous API" 3.4.1. Why use such an API? 3.4.2. Which processes actually happen asynchronously? 3.4.3. Notifying futures 3.4.4. Further reading 3.5. Invocation Flags Expand section "3.5. Invocation Flags" Collapse section "3.5. Invocation Flags" 3.5.1. Examples Expand section "3.5.1. Examples" Collapse section "3.5.1. Examples" 3.5.1.1. Suppressing return values from a put() or remove() 3.6. Tree API Module Expand section "3.6. Tree API Module" Collapse section "3.6. Tree API Module" 3.6.1. What is Tree API about? 3.6.2. Using the Tree API Expand section "3.6.2. Using the Tree API" Collapse section "3.6.2. Using the Tree API" 3.6.2.1. Dependencies 3.6.3. Creating a Tree Cache 3.6.4. Manipulating data in a Tree Cache 3.6.5. Common Operations 3.6.6. Locking in the Tree API 3.6.7. Listeners for tree cache events 3.7. Encoding Expand section "3.7. Encoding" Collapse section "3.7. Encoding" 3.7.1. Overview 3.7.2. Default encoders 3.7.3. Overriding programmatically 3.7.4. Defining custom Encoders 3.7.5. MediaType Expand section "3.7.5. MediaType" Collapse section "3.7.5. MediaType" 3.7.5.1. Configuration 3.7.5.2. Overriding the MediaType Programmatically 3.7.5.3. Transcoders and Encoders 4. Eviction and Data Container Expand section "4. Eviction and Data Container" Collapse section "4. Eviction and Data Container" 4.1. Enabling Eviction Expand section "4.1. Enabling Eviction" Collapse section "4.1. Enabling Eviction" 4.1.1. Eviction strategy 4.1.2. Eviction types 4.1.3. Storage type 4.1.4. More defaults 4.2. Expiration Expand section "4.2. Expiration" Collapse section "4.2. Expiration" 4.2.1. Difference between Eviction and Expiration 4.3. Expiration details Expand section "4.3. Expiration details" Collapse section "4.3. Expiration details" 4.3.1. Maximum Idle Expiration Expand section "4.3.1. Maximum Idle Expiration" Collapse section "4.3.1. Maximum Idle Expiration" 4.3.1.1. Local Max Idle 4.3.1.2. Clustered Max Idle 4.3.2. Configuration 4.3.3. Memory Based Eviction Configuration 4.3.4. Default values 4.3.5. Using expiration 4.4. Expiration designs 5. Persistence Expand section "5. Persistence" Collapse section "5. Persistence" 5.1. Configuration 5.2. Cache Passivation Expand section "5.2. Cache Passivation" Collapse section "5.2. Cache Passivation" 5.2.1. Limitations 5.2.2. Cache Loader Behavior with Passivation Disabled vs Enabled 5.3. Cache Loaders and transactional caches 5.4. Write-Through And Write-Behind Caching Expand section "5.4. Write-Through And Write-Behind Caching" Collapse section "5.4. Write-Through And Write-Behind Caching" 5.4.1. Write-Through (Synchronous) 5.4.2. Write-Behind (Asynchronous) 5.5. Filesystem based cache stores Expand section "5.5. Filesystem based cache stores" Collapse section "5.5. Filesystem based cache stores" 5.5.1. Single File Store Expand section "5.5.1. Single File Store" Collapse section "5.5.1. Single File Store" 5.5.1.1. Declarative Configuration 5.5.1.2. Programmatic Configuration 5.5.2. Soft-Index File Store Expand section "5.5.2. Soft-Index File Store" Collapse section "5.5.2. Soft-Index File Store" 5.5.2.1. Configuration 5.5.2.2. Current limitations 5.6. JDBC String based Cache Store Expand section "5.6. JDBC String based Cache Store" Collapse section "5.6. JDBC String based Cache Store" 5.6.1. Connection management (pooling) 5.6.2. Sample configurations 5.7. Remote store Expand section "5.7. Remote store" Collapse section "5.7. Remote store" 5.7.1. Sample Usage 5.8. Cluster cache loader 5.9. Command-Line Interface cache loader 5.10. RocksDB Cache Store Expand section "5.10. RocksDB Cache Store" Collapse section "5.10. RocksDB Cache Store" 5.10.1. Introduction Expand section "5.10.1. Introduction" Collapse section "5.10.1. Introduction" 5.10.1.1. Sample Usage 5.10.2. Configuration Expand section "5.10.2. Configuration" Collapse section "5.10.2. Configuration" 5.10.2.1. Sample Programatic Configuration 5.10.2.2. Sample XML Configuration 5.10.3. Additional References 5.11. LevelDB Cache Store 5.12. JPA Cache Store Expand section "5.12. JPA Cache Store" Collapse section "5.12. JPA Cache Store" 5.12.1. Sample Usage 5.12.2. Configuration Expand section "5.12.2. Configuration" Collapse section "5.12.2. Configuration" 5.12.2.1. Sample Programatic Configuration 5.12.2.2. Sample XML Configuration 5.12.3. Additional References 5.13. Custom Cache Stores Expand section "5.13. Custom Cache Stores" Collapse section "5.13. Custom Cache Stores" 5.13.1. HotRod Deployment 5.14. Store Migrator Expand section "5.14. Store Migrator" Collapse section "5.14. Store Migrator" 5.14.1. Migrating Cache Stores 5.14.2. Store Migrator Properties Expand section "5.14.2. Store Migrator Properties" Collapse section "5.14.2. Store Migrator Properties" 5.14.2.1. Common Properties 5.14.2.2. JDBC Properties 5.14.2.3. LevelDB/RocksDB Properties 5.14.2.4. SingleFileStore Properties 5.14.2.5. SoftIndexFileStore Properties 5.15. SPI 5.16. More implementations 6. Clustering Expand section "6. Clustering" Collapse section "6. Clustering" 6.1. Local Mode Expand section "6.1. Local Mode" Collapse section "6.1. Local Mode" 6.1.1. Simple Cache Expand section "6.1.1. Simple Cache" Collapse section "6.1.1. Simple Cache" 6.1.1.1. Declarative configuration 6.1.1.2. Programmatic configuration 6.2. Invalidation Mode 6.3. Replicated Mode 6.4. Distribution Mode Expand section "6.4. Distribution Mode" Collapse section "6.4. Distribution Mode" 6.4.1. Read consistency 6.4.2. Key Ownership Expand section "6.4.2. Key Ownership" Collapse section "6.4.2. Key Ownership" 6.4.2.1. Capacity Factors 6.4.2.2. Zero Capacity Node 6.4.2.3. Hashing Configuration 6.4.3. Initial cluster size 6.4.4. L1 Caching 6.4.5. Server Hinting Expand section "6.4.5. Server Hinting" Collapse section "6.4.5. Server Hinting" 6.4.5.1. Configuration 6.4.6. Key affinity service Expand section "6.4.6. Key affinity service" Collapse section "6.4.6. Key affinity service" 6.4.6.1. API 6.4.6.2. Lifecycle 6.4.6.3. Topology changes 6.4.7. The Grouping API Expand section "6.4.7. The Grouping API" Collapse section "6.4.7. The Grouping API" 6.4.7.1. How does it work? 6.4.7.2. How do I use the grouping API? 6.4.7.3. Advanced Interface 6.5. Asynchronous Options Expand section "6.5. Asynchronous Options" Collapse section "6.5. Asynchronous Options" 6.5.1. Asynchronous Communications 6.5.2. Asynchronous API 6.5.3. Return Values 6.6. Partition handling Expand section "6.6. Partition handling" Collapse section "6.6. Partition handling" 6.6.1. Split brain Expand section "6.6.1. Split brain" Collapse section "6.6.1. Split brain" 6.6.1.1. Split Strategies Expand section "6.6.1.1. Split Strategies" Collapse section "6.6.1.1. Split Strategies" 6.6.1.1.1. ALLOW_READ_WRITES 6.6.1.1.2. DENY_READ_WRITES 6.6.1.1.3. ALLOW_READS 6.6.1.2. Current limitations 6.6.2. Successive nodes stopped 6.6.3. Conflict Manager Expand section "6.6.3. Conflict Manager" Collapse section "6.6.3. Conflict Manager" 6.6.3.1. Detecting Conflicts 6.6.3.2. Merge Policies 6.6.4. Usage 6.6.5. Configuring partition handling Expand section "6.6.5. Configuring partition handling" Collapse section "6.6.5. Configuring partition handling" 6.6.5.1. Implement a custom merge policy 6.6.5.2. Deploy custom merge policies to a Infinispan server instance 6.6.6. Monitoring and administration 7. Marshalling Expand section "7. Marshalling" Collapse section "7. Marshalling" 7.1. The Role Of JBoss Marshalling 7.2. Support For Non-Serializable Objects Expand section "7.2. Support For Non-Serializable Objects" Collapse section "7.2. Support For Non-Serializable Objects" 7.2.1. Store As Binary Expand section "7.2.1. Store As Binary" Collapse section "7.2.1. Store As Binary" 7.2.1.1. Equality Considerations 7.2.1.2. Store-by-value via defensive copying 7.3. Advanced Configuration Expand section "7.3. Advanced Configuration" Collapse section "7.3. Advanced Configuration" 7.3.1. Troubleshooting 7.4. User Defined Externalizers Expand section "7.4. User Defined Externalizers" Collapse section "7.4. User Defined Externalizers" 7.4.1. Benefits of Externalizers 7.4.2. User Friendly Externalizers 7.4.3. Advanced Externalizers Expand section "7.4.3. Advanced Externalizers" Collapse section "7.4.3. Advanced Externalizers" 7.4.3.1. Linking Externalizers with Marshaller Classes 7.4.3.2. Externalizer Identifier 7.4.3.3. Registering Advanced Externalizers 7.4.3.4. Preassigned Externalizer Id Ranges 8. Transactions Expand section "8. Transactions" Collapse section "8. Transactions" 8.1. Configuring transactions 8.2. Isolation levels 8.3. Transaction locking Expand section "8.3. Transaction locking" Collapse section "8.3. Transaction locking" 8.3.1. Pessimistic transactional cache 8.3.2. Optimistic transactional cache 8.3.3. What do I need - pessimistic or optimistic transactions? 8.4. Write Skews Expand section "8.4. Write Skews" Collapse section "8.4. Write Skews" 8.4.1. Forcing write locks on keys in pessimitic transactions 8.5. Dealing with exceptions 8.6. Enlisting Synchronizations 8.7. Batching Expand section "8.7. Batching" Collapse section "8.7. Batching" 8.7.1. API 8.7.2. Batching and JTA 8.8. Transaction recovery Expand section "8.8. Transaction recovery" Collapse section "8.8. Transaction recovery" 8.8.1. When to use recovery 8.8.2. How does it work 8.8.3. Configuring recovery Expand section "8.8.3. Configuring recovery " Collapse section "8.8.3. Configuring recovery " 8.8.3.1. Enable JMX support 8.8.4. Recovery cache 8.8.5. Integration with the transaction manager 8.8.6. Reconciliation Expand section "8.8.6. Reconciliation" Collapse section "8.8.6. Reconciliation" 8.8.6.1. Force commit/rollback based on XID 8.8.7. Want to know more? 8.9. Total Order based commit protocol Expand section "8.9. Total Order based commit protocol" Collapse section "8.9. Total Order based commit protocol" 8.9.1. Overview Expand section "8.9.1. Overview" Collapse section "8.9.1. Overview" 8.9.1.1. Commit in one phase 8.9.1.2. Commit in two phases 8.9.1.3. Transaction Recovery 8.9.1.4. State Transfer 8.9.2. Configuration 8.9.3. When to use it? 9. Locking and Concurrency Expand section "9. Locking and Concurrency" Collapse section "9. Locking and Concurrency" 9.1. Locking implementation details Expand section "9.1. Locking implementation details" Collapse section "9.1. Locking implementation details" 9.1.1. How does it work in clustered caches? Expand section "9.1.1. How does it work in clustered caches?" Collapse section "9.1.1. How does it work in clustered caches?" 9.1.1.1. Non Transactional caches 9.1.2. Transactional caches 9.1.3. Isolation levels 9.1.4. The LockManager 9.1.5. Lock striping 9.1.6. Concurrency levels 9.1.7. Lock timeout 9.1.8. Consistency 9.2. Data Versioning 10. Executing code in the Grid Expand section "10. Executing code in the Grid" Collapse section "10. Executing code in the Grid" 10.1. Cluster Executor Expand section "10.1. Cluster Executor" Collapse section "10.1. Cluster Executor" 10.1.1. Filtering execution nodes 10.1.2. Timeout 10.1.3. Single Node Submission Expand section "10.1.3. Single Node Submission" Collapse section "10.1.3. Single Node Submission" 10.1.3.1. Failover 10.1.4. Example: PI Approximation 10.2. Streams Expand section "10.2. Streams" Collapse section "10.2. Streams" 10.2.1. Common stream operations 10.2.2. Key filtering 10.2.3. Segment based filtering 10.2.4. Local/Invalidation 10.2.5. Example 10.3. Distribution/Replication/Scattered Expand section "10.3. Distribution/Replication/Scattered" Collapse section "10.3. Distribution/Replication/Scattered" 10.3.1. Rehash Aware 10.3.2. Serialization 10.3.3. Parallel Computation 10.3.4. Task timeout 10.3.5. Injection 10.3.6. Distributed Stream execution 10.3.7. Key based rehash aware operators 10.3.8. Intermediate operation exceptions 10.3.9. Examples 10.4. Distributed Execution Expand section "10.4. Distributed Execution" Collapse section "10.4. Distributed Execution" 10.4.1. DistributedCallable API 10.4.2. Callable and CDI 10.4.3. DistributedExecutorService, DistributedTaskBuilder and DistributedTask API 10.4.4. Distributed task failover 10.4.5. Distributed task execution policy 10.4.6. Examples 11. Indexing and Querying Expand section "11. Indexing and Querying" Collapse section "11. Indexing and Querying" 11.1. Overview 11.2. Embedded Querying Expand section "11.2. Embedded Querying" Collapse section "11.2. Embedded Querying" 11.2.1. Quick example 11.2.2. Indexing Expand section "11.2.2. Indexing" Collapse section "11.2.2. Indexing" 11.2.2.1. Configuration Expand section "11.2.2.1. Configuration" Collapse section "11.2.2.1. Configuration" 11.2.2.1.1. General format 11.2.2.1.2. Index names 11.2.2.1.3. Specifying indexed Entities 11.2.2.2. Index mode 11.2.2.3. Index Managers 11.2.2.4. Shared indexes Expand section "11.2.2.4. Shared indexes" Collapse section "11.2.2.4. Shared indexes" 11.2.2.4.1. Effect of the index mode 11.2.2.4.2. InfinispanIndexManager 11.2.2.4.3. AffinityIndexManager 11.2.2.5. Non-shared indexes Expand section "11.2.2.5. Non-shared indexes" Collapse section "11.2.2.5. Non-shared indexes" 11.2.2.5.1. Effect of the index mode 11.2.2.5.2. directory-based index manager 11.2.2.5.3. near-real-time index manager 11.2.2.6. External indexes Expand section "11.2.2.6. External indexes" Collapse section "11.2.2.6. External indexes" 11.2.2.6.1. Elasticsearch IndexManager (experimental) 11.2.2.7. Automatic configuration 11.2.2.8. Re-indexing 11.2.2.9. Mapping Entities Expand section "11.2.2.9. Mapping Entities" Collapse section "11.2.2.9. Mapping Entities" 11.2.2.9.1. @DocumentId 11.2.2.9.2. @Transformable keys 11.2.2.9.3. Programmatic mapping 11.2.3. Querying APIs Expand section "11.2.3. Querying APIs" Collapse section "11.2.3. Querying APIs" 11.2.3.1. Hibernate Search Expand section "11.2.3.1. Hibernate Search" Collapse section "11.2.3.1. Hibernate Search" 11.2.3.1.1. Running Lucene queries 11.2.3.1.2. Using the Hibernate Search DSL 11.2.3.1.3. Faceted Search 11.2.3.1.4. Spatial Queries 11.2.3.1.5. IndexedQueryMode 11.2.3.2. Red Hat Data Grid Query DSL Expand section "11.2.3.2. Red Hat Data Grid Query DSL" Collapse section "11.2.3.2. Red Hat Data Grid Query DSL" 11.2.3.2.1. Filtering operators 11.2.3.2.2. Filtering based on attributes of embedded entities 11.2.3.2.3. Boolean conditions 11.2.3.2.4. Nested conditions 11.2.3.2.5. Projections 11.2.3.2.6. Sorting 11.2.3.2.7. Pagination 11.2.3.2.8. Grouping and Aggregation 11.2.3.2.9. Aggregations 11.2.3.2.10. Evaluation of queries with grouping and aggregation 11.2.3.2.11. Using Named Query Parameters 11.2.3.2.12. More Query DSL samples 11.2.3.3. Ickle Expand section "11.2.3.3. Ickle" Collapse section "11.2.3.3. Ickle" 11.2.3.3.1. Ickle Query Language Parser Syntax 11.2.3.3.2. Fuzzy Queries 11.2.3.3.3. Range Queries 11.2.3.3.4. Phrase Queries 11.2.3.3.5. Proximity Queries 11.2.3.3.6. Wildcard Queries 11.2.3.3.7. Regular Expression Queries 11.2.3.3.8. Boosting Queries 11.2.3.4. Continuous Query Expand section "11.2.3.4. Continuous Query" Collapse section "11.2.3.4. Continuous Query" 11.2.3.4.1. Continuous Query Execution 11.2.3.4.2. Running Continuous Queries 11.2.3.4.3. Removing Continuous Queries 11.2.3.4.4. Notes on performance of Continuous Queries 11.3. Remote Querying Expand section "11.3. Remote Querying" Collapse section "11.3. Remote Querying" 11.3.1. Storing Protobuf encoded entities 11.3.2. Indexing of Protobuf encoded entries 11.3.3. A remote query example 11.3.4. Analysis Expand section "11.3.4. Analysis" Collapse section "11.3.4. Analysis" 11.3.4.1. Default Analyzers 11.3.4.2. Using Analyzer Definitions 11.3.4.3. Creating Custom Analyzer Definitions 11.4. Statistics 11.5. Performance Tuning Expand section "11.5. Performance Tuning" Collapse section "11.5. Performance Tuning" 11.5.1. Batch writing in SYNC mode 11.5.2. Writing using async mode 11.5.3. Index reader async strategy 11.5.4. Lucene Options 12. Clustered Counters Expand section "12. Clustered Counters" Collapse section "12. Clustered Counters" 12.1. Installation and Configuration Expand section "12.1. Installation and Configuration" Collapse section "12.1. Installation and Configuration" 12.1.1. List counter names 12.2. The CounterManager interface. Expand section "12.2. The CounterManager interface." Collapse section "12.2. The CounterManager interface." 12.2.1. Remove a counter via CounterManager 12.3. The Counter Expand section "12.3. The Counter" Collapse section "12.3. The Counter" 12.3.1. The StrongCounter interface: when the consistency or bounds matters. Expand section "12.3.1. The StrongCounter interface: when the consistency or bounds matters." Collapse section "12.3.1. The StrongCounter interface: when the consistency or bounds matters." 12.3.1.1. Bounded StrongCounter 12.3.1.2. Uses cases 12.3.1.3. Usage Examples 12.3.2. The WeakCounter interface: when speed is needed Expand section "12.3.2. The WeakCounter interface: when speed is needed" Collapse section "12.3.2. The WeakCounter interface: when speed is needed" 12.3.2.1. Weak Counter Interface 12.3.2.2. Uses cases 12.3.2.3. Examples 12.4. Notifications and Events 13. Clustered Lock Expand section "13. Clustered Lock" Collapse section "13. Clustered Lock" 13.1. Installation 13.2. ClusteredLock Configuration Expand section "13.2. ClusteredLock Configuration" Collapse section "13.2. ClusteredLock Configuration" 13.2.1. Ownership 13.2.2. Reentrancy 13.3. ClusteredLockManager Interface 13.4. ClusteredLock Interface Expand section "13.4. ClusteredLock Interface" Collapse section "13.4. ClusteredLock Interface" 13.4.1. Usage Examples 13.5. ClusteredLockManager Configuration 14. Multimap Cache Expand section "14. Multimap Cache" Collapse section "14. Multimap Cache" 14.1. Installation and configuration 14.2. MultimapCache API Expand section "14.2. MultimapCache API" Collapse section "14.2. MultimapCache API" 14.2.1. CompletableFuture<Void> put(K key, V value) 14.2.2. CompletableFuture<Collection<V>> get(K key) 14.2.3. CompletableFuture<Boolean> remove(K key) 14.2.4. CompletableFuture<Boolean> remove(K key, V value) 14.2.5. CompletableFuture<Void> remove(Predicate<? super V> p) 14.2.6. CompletableFuture<Boolean> containsKey(K key) 14.2.7. CompletableFuture<Boolean> containsValue(V value) 14.2.8. CompletableFuture<Boolean> containsEntry(K key, V value) 14.2.9. CompletableFuture<Long> size() 14.2.10. boolean supportsDuplicates() 14.3. Creating a Multimap Cache Expand section "14.3. Creating a Multimap Cache" Collapse section "14.3. Creating a Multimap Cache" 14.3.1. Embedded mode 14.4. Limitations Expand section "14.4. Limitations" Collapse section "14.4. Limitations" 14.4.1. Support for duplicates 14.4.2. Eviction 14.4.3. Transactions 15. CDI Support Expand section "15. CDI Support" Collapse section "15. CDI Support" 15.1. Maven Dependencies 15.2. Embedded cache integration Expand section "15.2. Embedded cache integration" Collapse section "15.2. Embedded cache integration" 15.2.1. Inject an embedded cache 15.2.2. Override the default embedded cache manager and configuration 15.2.3. Configure the transport for clustered use 15.3. Remote cache integration Expand section "15.3. Remote cache integration" Collapse section "15.3. Remote cache integration" 15.3.1. Inject a remote cache 15.3.2. Override the default remote cache manager 15.4. Use a custom remote/embedded cache manager for one or more cache 15.5. Use JCache caching annotations 15.6. Use Cache events and CDI 16. JCache (JSR-107) provider Expand section "16. JCache (JSR-107) provider" Collapse section "16. JCache (JSR-107) provider" 16.1. Dependencies 16.2. Create a local cache 16.3. Create a remote cache 16.4. Store and retrieve data 16.5. Comparing java.util.concurrent.ConcurrentMap and javax.cache.Cache APIs 16.6. Clustering JCache instances 17. Management Tooling Expand section "17. Management Tooling" Collapse section "17. Management Tooling" 17.1. JMX Expand section "17.1. JMX" Collapse section "17.1. JMX" 17.1.1. Understanding The Exposed MBeans 17.1.2. Enabling JMX Statistics 17.1.3. Monitoring cluster health 17.1.4. Multiple JMX Domains 17.1.5. Registering MBeans In Non-Default MBean Servers 17.1.6. Available MBeans 17.2. Command-Line Interface (CLI) Expand section "17.2. Command-Line Interface (CLI)" Collapse section "17.2. Command-Line Interface (CLI)" 17.2.1. Commands Expand section "17.2.1. Commands" Collapse section "17.2.1. Commands" 17.2.1.1. abort 17.2.1.2. begin 17.2.1.3. cache 17.2.1.4. clearcache 17.2.1.5. commit 17.2.1.6. container 17.2.1.7. create 17.2.1.8. deny 17.2.1.9. disconnect 17.2.1.10. encoding 17.2.1.11. end 17.2.1.12. evict 17.2.1.13. get 17.2.1.14. grant 17.2.1.15. info 17.2.1.16. locate 17.2.1.17. put 17.2.1.18. replace 17.2.1.19. roles 17.2.1.20. rollback 17.2.1.21. site 17.2.1.22. start 17.2.1.23. stats 17.2.2. upgrade 17.2.3. version 17.2.4. Data Types 17.2.5. Time Values 17.2.6. Starting and Stopping Red Hat Data Grid Endpoints 17.3. Hawt.io 17.4. Writing plugins for other management tools 18. Custom Interceptors Expand section "18. Custom Interceptors" Collapse section "18. Custom Interceptors" 18.1. Adding custom interceptors declaratively 18.2. Adding custom interceptors programatically 18.3. Custom interceptor design 19. Running on Cloud Services Expand section "19. Running on Cloud Services" Collapse section "19. Running on Cloud Services" 19.1. Generic Discovery protocols Expand section "19.1. Generic Discovery protocols" Collapse section "19.1. Generic Discovery protocols" 19.1.1. TCPPing 19.1.2. GossipRouter 19.2. Amazon Web Services 19.3. NATIVE_S3_PING Expand section "19.3. NATIVE_S3_PING" Collapse section "19.3. NATIVE_S3_PING" 19.3.1. JDBC_PING 19.4. Microsoft Azure Expand section "19.4. Microsoft Azure" Collapse section "19.4. Microsoft Azure" 19.4.1. AZURE_PING 19.5. Google Compute Engine Expand section "19.5. Google Compute Engine" Collapse section "19.5. Google Compute Engine" 19.5.1. GOOGLE_PING 19.6. Kubernetes Expand section "19.6. Kubernetes" Collapse section "19.6. Kubernetes" 19.6.1. Kube_PING 19.6.2. DNS_PING 19.6.3. Using Kubernetes and OpenShift Rolling Updates 19.6.4. Rolling upgrades with Kubernetes and OpenShift 20. Client/Server Expand section "20. Client/Server" Collapse section "20. Client/Server" 20.1. Why Client/Server? 20.2. Why use embedded mode? 20.3. Server Modules 20.4. Which protocol should I use? 20.5. Using Hot Rod Server 20.6. Hot Rod Protocol Expand section "20.6. Hot Rod Protocol" Collapse section "20.6. Hot Rod Protocol" 20.6.1. Hot Rod Protocol 1.0 Expand section "20.6.1. Hot Rod Protocol 1.0" Collapse section "20.6.1. Hot Rod Protocol 1.0" 20.6.1.1. Request Header 20.6.1.2. Response Header 20.6.1.3. Topology Change Headers 20.6.1.4. Topology-Aware Client Topology Change Header 20.6.1.5. Distribution-Aware Client Topology Change Header 20.6.1.6. Operations 20.6.1.7. Example - Put request 20.6.2. Hot Rod Protocol 1.1 Expand section "20.6.2. Hot Rod Protocol 1.1" Collapse section "20.6.2. Hot Rod Protocol 1.1" 20.6.2.1. Request Header 20.6.2.2. Distribution-Aware Client Topology Change Header 20.6.2.3. Server node hash code calculation 20.6.3. Hot Rod Protocol 1.2 Expand section "20.6.3. Hot Rod Protocol 1.2" Collapse section "20.6.3. Hot Rod Protocol 1.2" 20.6.3.1. Request Header 20.6.3.2. Response Header 20.6.3.3. Operations 20.6.4. Hot Rod Protocol 1.3 Expand section "20.6.4. Hot Rod Protocol 1.3" Collapse section "20.6.4. Hot Rod Protocol 1.3" 20.6.4.1. Request Header 20.6.4.2. Response Header 20.6.4.3. Operations 20.6.5. Hot Rod Protocol 2.0 Expand section "20.6.5. Hot Rod Protocol 2.0" Collapse section "20.6.5. Hot Rod Protocol 2.0" 20.6.5.1. Request Header 20.6.5.2. Response Header 20.6.5.3. Distribution-Aware Client Topology Change Header 20.6.5.4. Operations 20.6.5.5. Remote Events 20.6.6. Hot Rod Protocol 2.1 Expand section "20.6.6. Hot Rod Protocol 2.1" Collapse section "20.6.6. Hot Rod Protocol 2.1" 20.6.6.1. Request Header 20.6.6.2. Operations 20.6.7. Hot Rod Protocol 2.2 Expand section "20.6.7. Hot Rod Protocol 2.2" Collapse section "20.6.7. Hot Rod Protocol 2.2" 20.6.7.1. Operations 20.6.8. Hot Rod Protocol 2.3 Expand section "20.6.8. Hot Rod Protocol 2.3" Collapse section "20.6.8. Hot Rod Protocol 2.3" 20.6.8.1. Operations 20.6.9. Hot Rod Protocol 2.4 Expand section "20.6.9. Hot Rod Protocol 2.4" Collapse section "20.6.9. Hot Rod Protocol 2.4" 20.6.9.1. Operations 20.6.10. Hot Rod Protocol 2.5 20.6.11. Hot Rod Protocol 2.6 20.6.12. Hot Rod Protocol 2.7 20.6.13. Hot Rod Protocol 2.8 Expand section "20.6.13. Hot Rod Protocol 2.8" Collapse section "20.6.13. Hot Rod Protocol 2.8" 20.6.13.1. Request Header 20.6.14. Hot Rod Protocol 2.9 20.6.15. Hot Rod Hash Functions 20.6.16. Hot Rod Admin Tasks Expand section "20.6.16. Hot Rod Admin Tasks" Collapse section "20.6.16. Hot Rod Admin Tasks" 20.6.16.1. Admin tasks 20.7. Java Hot Rod client Expand section "20.7. Java Hot Rod client" Collapse section "20.7. Java Hot Rod client" 20.7.1. Configuration 20.7.2. Authentication Expand section "20.7.2. Authentication" Collapse section "20.7.2. Authentication" 20.7.2.1. DIGEST-MD5 20.7.2.2. PLAIN 20.7.2.3. EXTERNAL 20.7.2.4. GSSAPI (Kerberos) 20.7.2.5. Custom CallbackHandlers 20.7.3. Encryption Expand section "20.7.3. Encryption" Collapse section "20.7.3. Encryption" 20.7.3.1. SNI 20.7.3.2. Client certificates 20.7.4. Basic API 20.7.5. RemoteCache(.keySet|.entrySet|.values) 20.7.6. Remote Iterator 20.7.7. Versioned API 20.7.8. Async API 20.7.9. Streaming API 20.7.10. Creating Event Listeners 20.7.11. Removing Event Listeners 20.7.12. Filtering Events 20.7.13. Skipping Notifications 20.7.14. Customizing Events 20.7.15. Filter and Custom Events 20.7.16. Event Marshalling Expand section "20.7.16. Event Marshalling" Collapse section "20.7.16. Event Marshalling" 20.7.16.1. Deploying Protostream Marshallers 20.7.17. Listener State Handling 20.7.18. Listener Failure Handling 20.7.19. Near Caching 20.7.20. Unsupported methods 20.7.21. Return values 20.7.22. Hot Rod Transactions Expand section "20.7.22. Hot Rod Transactions" Collapse section "20.7.22. Hot Rod Transactions" 20.7.22.1. Configuring the Server 20.7.22.2. Configuring Hot Rod Clients Expand section "20.7.22.2. Configuring Hot Rod Clients" Collapse section "20.7.22.2. Configuring Hot Rod Clients" 20.7.22.2.1. TransactionManagerLookup Interface 20.7.22.2.2. Transaction Modes 20.7.22.3. Overriding Configuration for Cache Instances 20.7.22.4. Detecting Conflicts with Transactions 20.7.22.5. Using the Configured Transaction Manager and Transaction Mode 20.7.22.6. Overriding the Transaction Manager 20.7.22.7. Overriding the Transaction Mode 20.7.23. Client Intelligence Expand section "20.7.23. Client Intelligence" Collapse section "20.7.23. Client Intelligence" 20.7.23.1. Request Balancing 20.7.24. Persistent connections 20.7.25. Marshalling data 20.7.26. Reading data in different data formats Expand section "20.7.26. Reading data in different data formats" Collapse section "20.7.26. Reading data in different data formats" 20.7.26.1. Using different marshallers for Key and Values 20.7.26.2. Reading data in different formats 20.7.27. Statistics 20.7.28. Multi-Get Operations 20.7.29. Failover capabilities 20.7.30. Site Cluster Failover 20.7.31. Manual Site Cluster Switch 20.7.32. Monitoring the Hot Rod client 20.7.33. Concurrent Updates Expand section "20.7.33. Concurrent Updates" Collapse section "20.7.33. Concurrent Updates" 20.7.33.1. Data Consistency Problem 20.7.33.2. Embedded-mode Solution 20.7.33.3. Client-Server Solution 20.7.34. Javadocs 20.8. REST Server Expand section "20.8. REST Server" Collapse section "20.8. REST Server" 20.8.1. Running the REST server Expand section "20.8.1. Running the REST server" Collapse section "20.8.1. Running the REST server" 20.8.1.1. Security 20.8.2. Supported protocols 20.8.3. REST API Expand section "20.8.3. REST API" Collapse section "20.8.3. REST API" 20.8.3.1. Data formats Expand section "20.8.3.1. Data formats" Collapse section "20.8.3.1. Data formats" 20.8.3.1.1. Configuration 20.8.3.1.2. Supported formats 20.8.3.1.3. Accept header 20.8.3.1.4. Key-Content-Type header 20.8.3.2. Putting data in Expand section "20.8.3.2. Putting data in" Collapse section "20.8.3.2. Putting data in" 20.8.3.2.1. PUT /{cacheName}/{cacheKey} 20.8.3.2.2. POST /{cacheName}/{cacheKey} 20.8.3.3. Getting data back out Expand section "20.8.3.3. Getting data back out" Collapse section "20.8.3.3. Getting data back out" 20.8.3.3.1. GET /{cacheName}/{cacheKey} 20.8.3.3.2. HEAD /{cacheName}/{cacheKey} 20.8.3.4. Listing keys Expand section "20.8.3.4. Listing keys" Collapse section "20.8.3.4. Listing keys" 20.8.3.4.1. GET /{cacheName} 20.8.3.5. Removing data Expand section "20.8.3.5. Removing data" Collapse section "20.8.3.5. Removing data" 20.8.3.5.1. DELETE /{cacheName}/{cacheKey} 20.8.3.5.2. DELETE /{cacheName} 20.8.3.6. Querying Expand section "20.8.3.6. Querying" Collapse section "20.8.3.6. Querying" 20.8.3.6.1. GET /{cacheName}?action=search&query={ickle query} 20.8.3.6.2. POST /{cacheName}?action=search 20.8.4. CORS 20.8.5. Client side code Expand section "20.8.5. Client side code" Collapse section "20.8.5. Client side code" 20.8.5.1. Ruby example 20.8.5.2. Python 3 example 20.8.5.3. Java example 20.9. Memcached Server Expand section "20.9. Memcached Server" Collapse section "20.9. Memcached Server" 20.9.1. Client Encoding 20.9.2. Command Clarifications Expand section "20.9.2. Command Clarifications" Collapse section "20.9.2. Command Clarifications" 20.9.2.1. Flush All 20.9.3. Unsupported Features Expand section "20.9.3. Unsupported Features" Collapse section "20.9.3. Unsupported Features" 20.9.3.1. Individual Stats 20.9.3.2. Statistic Settings 20.9.3.3. Settings with Arguments Parameter 20.9.3.4. Delete Hold Time Parameter 20.9.3.5. Verbosity Command 20.9.4. Talking To Red Hat Data Grid Memcached Servers From Non-Java Clients Expand section "20.9.4. Talking To Red Hat Data Grid Memcached Servers From Non-Java Clients" Collapse section "20.9.4. Talking To Red Hat Data Grid Memcached Servers From Non-Java Clients" 20.9.4.1. Multi Clustered Server Tutorial 20.10. Executing code in the Remote Grid 20.11. Scripting Expand section "20.11. Scripting" Collapse section "20.11. Scripting" 20.11.1. Installing scripts 20.11.2. Script metadata Expand section "20.11.2. Script metadata" Collapse section "20.11.2. Script metadata" 20.11.2.1. Metadata properties 20.11.3. Script bindings 20.11.4. Script parameters 20.11.5. Running Scripts using the Hot Rod Java client 20.11.6. Distributed execution 20.12. Server Tasks 21. Compatibility Mode Expand section "21. Compatibility Mode" Collapse section "21. Compatibility Mode" 21.1. Enable Compatibility Mode Expand section "21.1. Enable Compatibility Mode" Collapse section "21.1. Enable Compatibility Mode" 21.1.1. Optional: Configuring Compatibility Marshaller 21.2. Code examples 22. Protocol Interoperability Expand section "22. Protocol Interoperability" Collapse section "22. Protocol Interoperability" 22.1. Considerations with Media Types and Endpoint Interoperability 22.2. REST, Hot Rod, and Memcached Interoperability with Text-Based Storage 22.3. REST, Hot Rod, and Memcached Interoperability with Custom Java Objects 22.4. Java and Non-Java Client Interoperability with Protobuf 22.5. Custom Code Interoperability Expand section "22.5. Custom Code Interoperability" Collapse section "22.5. Custom Code Interoperability" 22.5.1. Converting Data On Demand 22.5.2. Storing Data as POJOs 22.6. Deploying Entity Classes 23. Security Expand section "23. Security" Collapse section "23. Security" 23.1. Embedded Security Expand section "23.1. Embedded Security" Collapse section "23.1. Embedded Security" 23.1.1. Embedded Permissions Expand section "23.1.1. Embedded Permissions" Collapse section "23.1.1. Embedded Permissions" 23.1.1.1. Cache Manager permissions 23.1.1.2. Cache permissions 23.1.2. Embedded API 23.1.3. Embedded Configuration Expand section "23.1.3. Embedded Configuration" Collapse section "23.1.3. Embedded Configuration" 23.1.3.1. Role Mappers 23.2. Cluster security 24. Grid File System Expand section "24. Grid File System" Collapse section "24. Grid File System" 24.1. WebDAV demo 25. Cross site replication Expand section "25. Cross site replication" Collapse section "25. Cross site replication" 25.1. Sample deployment Expand section "25.1. Sample deployment" Collapse section "25.1. Sample deployment" 25.1.1. Local cluster’s jgroups .xml configuration 25.1.2. RELAY2 configuration file 25.2. Data replication Expand section "25.2. Data replication" Collapse section "25.2. Data replication" 25.2.1. Non transactional caches 25.2.2. Transactional caches Expand section "25.2.2. Transactional caches" Collapse section "25.2.2. Transactional caches" 25.2.2.1. Synchronous local cluster with async backup 25.2.2.2. Synchronous local cluster with sync backup 25.2.2.3. Asynchronous local cluster 25.2.3. Replication of expired cache entries across sites 25.2.4. Deadlocks and Conflicting Entries 25.3. Taking a site offline Expand section "25.3. Taking a site offline" Collapse section "25.3. Taking a site offline" 25.3.1. Configuration 25.3.2. Bringing Sites Back Online 25.4. Pushing State Transfer to Sites Expand section "25.4. Pushing State Transfer to Sites" Collapse section "25.4. Pushing State Transfer to Sites" 25.4.1. Handling join/leave nodes 25.4.2. Handling broken link between sites 25.4.3. System Administrator Operations 25.4.4. Configuration 25.5. Reference 26. Performing Rolling Upgrades Expand section "26. Performing Rolling Upgrades" Collapse section "26. Performing Rolling Upgrades" 26.1. Setting Up a Target Cluster 26.2. Synchronizing Data from the Source Cluster 26.3. Custom Commands Expand section "26.3. Custom Commands" Collapse section "26.3. Custom Commands" 26.3.1. An Example 26.3.2. Preassigned Custom Command Id Ranges 26.4. Extending the configuration builders and parsers 27. Architectural Overview Expand section "27. Architectural Overview" Collapse section "27. Architectural Overview" 27.1. Cache hierarchy 27.2. Commands 27.3. Visitors 27.4. Interceptors 27.5. Putting it all together 27.6. Subsystem Managers Expand section "27.6. Subsystem Managers" Collapse section "27.6. Subsystem Managers" 27.6.1. DistributionManager 27.6.2. TransactionManager 27.6.3. RpcManager 27.6.4. LockManager 27.6.5. PersistenceManager 27.6.6. DataContainer 27.6.7. Configuration 27.7. ComponentRegistry Legal Notice Settings Close Language: 日本語 English Language: 日本語 English Format: Multi-page Single-page PDF Format: Multi-page Single-page PDF Language and Page Formatting Options Language: 日本語 English Language: 日本語 English Format: Multi-page Single-page PDF Format: Multi-page Single-page PDF Red Hat Data Grid User Guide Red Hat Data Grid 7.3For use with Red Hat Data Grid 7.3Red Hat Customer Content ServicesLegal NoticeAbstract This guide describes the administration and configuration of Red Hat Data Grid 7.3. Next