Jump To Close Expand all Collapse all Table of contents Developer Guide I. Programmable APIs Expand section "I. Programmable APIs" Collapse section "I. Programmable APIs" 1. Programmable APIs 2. The Cache API Expand section "2. The Cache API" Collapse section "2. The Cache API" 2.1. The Cache API 2.2. Using the ConfigurationBuilder API to Configure the Cache API 2.3. Per-Invocation Flags Expand section "2.3. Per-Invocation Flags" Collapse section "2.3. Per-Invocation Flags" 2.3.1. Per-Invocation Flags 2.3.2. Per-Invocation Flag Functions 2.3.3. Configure Per-Invocation Flags 2.3.4. Per-Invocation Flags Example 2.4. The AdvancedCache Interface Expand section "2.4. The AdvancedCache Interface" Collapse section "2.4. The AdvancedCache Interface" 2.4.1. The AdvancedCache Interface 2.4.2. Flag Usage with the AdvancedCache Interface 2.4.3. GET and PUT Usage in Distribution Mode Expand section "2.4.3. GET and PUT Usage in Distribution Mode" Collapse section "2.4.3. GET and PUT Usage in Distribution Mode" 2.4.3.1. GET and PUT Usage in Distribution Mode 2.4.3.2. Distributed GET and PUT Operation Resource Usage 2.4.4. Limitations of Map Methods 3. The Multimap Cache Expand section "3. The Multimap Cache" Collapse section "3. The Multimap Cache" 3.1. The Multimap Cache 3.2. Installing MultimapCache using Maven 3.3. Creating a Multimap Cache 3.4. Example MultimapCache Usage 4. The Asynchronous API Expand section "4. The Asynchronous API" Collapse section "4. The Asynchronous API" 4.1. The Asynchronous API 4.2. Asynchronous API Benefits 4.3. About Asynchronous Processes 4.4. Return Values and the Asynchronous API 5. The Batching API Expand section "5. The Batching API" Collapse section "5. The Batching API" 5.1. The Batching API 5.2. About Java Transaction API 5.3. Batching and the Java Transaction API (JTA) 5.4. Using the Batching API Expand section "5.4. Using the Batching API" Collapse section "5.4. Using the Batching API" 5.4.1. Configure the Batching API 5.4.2. Use the Batching API 6. The Grouping API Expand section "6. The Grouping API" Collapse section "6. The Grouping API" 6.1. The Grouping API 6.2. Grouping API Operations 6.3. Grouping API Use Case 6.4. Configure the Grouping API Expand section "6.4. Configure the Grouping API" Collapse section "6.4. Configure the Grouping API" 6.4.1. Configure the Grouping API 6.4.2. Enable Groups 6.4.3. Specify an Intrinsic Group 6.4.4. Specify an Extrinsic Group 6.4.5. Register Groupers 7. The Persistence SPI Expand section "7. The Persistence SPI" Collapse section "7. The Persistence SPI" 7.1. The Persistence SPI 7.2. Persistence SPI Benefits 7.3. Programmatically Configure the Persistence SPI 7.4. Persistence Examples Expand section "7.4. Persistence Examples" Collapse section "7.4. Persistence Examples" 7.4.1. Persistence Examples 7.4.2. Configure the Cache Store Programmatically 7.4.3. LevelDB Cache Store Programmatic Configuration 7.4.4. JdbcBinaryStore Programmatic Configuration 7.4.5. JdbcStringBasedStore Programmatic Configuration 7.4.6. JdbcMixedStore Programmatic Configuration 7.4.7. JPA Cache Store Sample Programmatic Configuration 7.4.8. Cassandra Cache Store Sample Programmatic Configuration 8. The ConfigurationBuilder API Expand section "8. The ConfigurationBuilder API" Collapse section "8. The ConfigurationBuilder API" 8.1. The ConfigurationBuilder API 8.2. Using the ConfigurationBuilder API Expand section "8.2. Using the ConfigurationBuilder API" Collapse section "8.2. Using the ConfigurationBuilder API" 8.2.1. Programmatically Create a CacheManager and Replicated Cache 8.2.2. Cluster-Wide Dynamic Cache Creation 8.2.3. Create a Customized Cache Using the Default Named Cache 8.2.4. Create a Customized Cache Using a Non-Default Named Cache 8.2.5. Using the Configuration Builder to Create Caches Programmatically 8.2.6. Global Configuration Examples Expand section "8.2.6. Global Configuration Examples" Collapse section "8.2.6. Global Configuration Examples" 8.2.6.1. Globally Configure the Transport Layer 8.2.6.2. Globally Configure the Cache Manager Name 8.2.6.3. Globally Configure JGroups 8.2.7. Cache Level Configuration Examples Expand section "8.2.7. Cache Level Configuration Examples" Collapse section "8.2.7. Cache Level Configuration Examples" 8.2.7.1. Cache Level Configuration for the Cluster Mode 8.2.7.2. Cache Level Eviction and Expiration Configuration 8.2.7.3. Cache Level Configuration for JTA Transactions 8.2.7.4. Cache Level Configuration Using Chained Persistent Stores 8.2.7.5. Cache Level Configuration for Advanced Externalizers 8.2.7.6. Cache Level Configuration for Partition Handling (Library Mode) 9. The Externalizable API Expand section "9. The Externalizable API" Collapse section "9. The Externalizable API" 9.1. The Externalizable API 9.2. Customize Externalizers 9.3. Annotating Objects for Marshalling Using @SerializeWith 9.4. Using an Advanced Externalizer Expand section "9.4. Using an Advanced Externalizer" Collapse section "9.4. Using an Advanced Externalizer" 9.4.1. Using an Advanced Externalizer 9.4.2. Implement the Methods 9.4.3. Link Externalizers with Marshaller Classes 9.4.4. Register the Advanced Externalizer (Programmatically) 9.4.5. Register Multiple Externalizers 9.5. Custom Externalizer ID Values Expand section "9.5. Custom Externalizer ID Values" Collapse section "9.5. Custom Externalizer ID Values" 9.5.1. Custom Externalizer ID Values 9.5.2. Customize the Externalizer ID (Programmatically) 10. The Notification/Listener API Expand section "10. The Notification/Listener API" Collapse section "10. The Notification/Listener API" 10.1. The Notification/Listener API 10.2. Listener Example 10.3. Listener Notifications Expand section "10.3. Listener Notifications" Collapse section "10.3. Listener Notifications" 10.3.1. Listener Notifications 10.3.2. About Cache-level Notifications 10.3.3. Cache Manager-level Notifications 10.3.4. About Synchronous and Asynchronous Notifications 10.4. Modifying Cache Entries Expand section "10.4. Modifying Cache Entries" Collapse section "10.4. Modifying Cache Entries" 10.4.1. Modifying Cache Entries 10.4.2. Cache Entry Modified Listener Configuration 10.4.3. Cache Entry Modified Listener Example 10.5. Clustered Listeners Expand section "10.5. Clustered Listeners" Collapse section "10.5. Clustered Listeners" 10.5.1. Clustered Listeners 10.5.2. Configuring Clustered Listeners 10.5.3. The Cache Listener API 10.5.4. Clustered Listener Example 10.5.5. Optimized Cache Filter Converter 10.6. Remote Event Listeners (Hot Rod) Expand section "10.6. Remote Event Listeners (Hot Rod)" Collapse section "10.6. Remote Event Listeners (Hot Rod)" 10.6.1. Remote Event Listeners (Hot Rod) 10.6.2. Adding and Removing Event Listeners 10.6.3. Remote Event Client Listener Example 10.6.4. Filtering Remote Events Expand section "10.6.4. Filtering Remote Events" Collapse section "10.6.4. Filtering Remote Events" 10.6.4.1. Filtering Remote Events 10.6.4.2. Custom Filters for Remote Events 10.6.4.3. Enhanced Filter Factories 10.6.5. Customizing Remote Events Expand section "10.6.5. Customizing Remote Events" Collapse section "10.6.5. Customizing Remote Events" 10.6.5.1. Customizing Remote Events 10.6.5.2. Adding a Converter 10.6.5.3. Lightweight Events 10.6.5.4. Dynamic Converter Instances 10.6.5.5. Adding a Remote Client Listener for Custom Events 10.6.6. Event Marshalling 10.6.7. Remote Event Clustering and Failover 11. JSR-107 (JCache) API Expand section "11. JSR-107 (JCache) API" Collapse section "11. JSR-107 (JCache) API" 11.1. JSR-107 (JCache) API 11.2. Dependencies Expand section "11.2. Dependencies" Collapse section "11.2. Dependencies" 11.2.1. Option 1: Maven 11.2.2. Option 2: Adding the necessary files to the classpath 11.3. Create a local cache Expand section "11.3. Create a local cache" Collapse section "11.3. Create a local cache" 11.3.1. Library Mode 11.3.2. Client-Server Mode 11.4. Store and retrieve data 11.5. Comparing java.util.concurrent.ConcurrentMap and javax.cache.Cache APIs 11.6. Clustering JCache instances 11.7. Multiple Caching Providers 12. The Health Check API Expand section "12. The Health Check API" Collapse section "12. The Health Check API" 12.1. The Health Check API 12.2. Accessing the Health Check API Programmatically 13. The REST API Expand section "13. The REST API" Collapse section "13. The REST API" 13.1. The REST Interface 13.2. Ruby Client Code 13.3. Using JSON with Ruby Example 13.4. Python Client Code 13.5. Java Client Code 13.6. Using the REST Interface Expand section "13.6. Using the REST Interface" Collapse section "13.6. Using the REST Interface" 13.6.1. REST Interface Operations Expand section "13.6.1. REST Interface Operations" Collapse section "13.6.1. REST Interface Operations" 13.6.1.1. Data Formats 13.6.1.2. Headers 13.6.1.3. Accept Header 13.6.1.4. Key-Content-Type Header 13.6.2. Adding Data Through the REST API Expand section "13.6.2. Adding Data Through the REST API" Collapse section "13.6.2. Adding Data Through the REST API" 13.6.2.1. Adding Data to the Cache 13.6.2.2. PUT /{cacheName}/{cacheKey} 13.6.2.3. POST /{cacheName}/{cacheKey} 13.6.2.4. Headers for the PUT and POST Methods 13.6.3. Retrieving Data Through the REST API Expand section "13.6.3. Retrieving Data Through the REST API" Collapse section "13.6.3. Retrieving Data Through the REST API" 13.6.3.1. Retrieving Data from the Cache 13.6.3.2. GET /{cacheName}/{cacheKey} 13.6.3.3. HEAD /{cacheName}/{cacheKey} 13.6.3.4. GET /{cacheName} 13.6.3.5. Headers for the GET and HEAD Methods 13.6.4. Removing Data Through the REST API Expand section "13.6.4. Removing Data Through the REST API" Collapse section "13.6.4. Removing Data Through the REST API" 13.6.4.1. Removing Data from the Cache 13.6.4.2. DELETE /{cacheName}/{cacheKey} 13.6.4.3. DELETE /{cacheName} 13.6.4.4. Background Delete Operations 13.6.5. ETag Based Headers 13.6.6. Querying Data via the REST Interface Expand section "13.6.6. Querying Data via the REST Interface" Collapse section "13.6.6. Querying Data via the REST Interface" 13.6.6.1. JSON to Protostream Conversion 13.6.6.2. Registering Protobuf Schemas 13.6.6.3. Mapping JSON Documents to Protobuf Messages 13.6.6.4. Populating the Cache 13.6.6.5. Querying REST Endpoints Expand section "13.6.6.5. Querying REST Endpoints" Collapse section "13.6.6.5. Querying REST Endpoints" 13.6.6.5.1. Optional Request Parameters 13.6.6.5.2. Query Results 14. Clustered Counters Expand section "14. Clustered Counters" Collapse section "14. Clustered Counters" 14.1. The Counter API 14.2. Adding Maven Dependencies 14.3. Retrieving the CounterManager Interface 14.4. Using Clustered Counters Expand section "14.4. Using Clustered Counters" Collapse section "14.4. Using Clustered Counters" 14.4.1. XML Configuration for Clustered Counters Expand section "14.4.1. XML Configuration for Clustered Counters" Collapse section "14.4.1. XML Configuration for Clustered Counters" 14.4.1.1. XML Definition 14.4.2. Run-time Configuration of Clustered Counters 14.4.3. Programmatic Configuration of Clustered Counters Expand section "14.4.3. Programmatic Configuration of Clustered Counters" Collapse section "14.4.3. Programmatic Configuration of Clustered Counters" 14.4.3.1. Using Clustered Counters 15. Clustered Locks Expand section "15. Clustered Locks" Collapse section "15. Clustered Locks" 15.1. The Lock API 15.2. Supported Configuration 15.3. Adding Maven Dependencies 15.4. Using Clustered Locks 16. The Hot Rod Interface Expand section "16. The Hot Rod Interface" Collapse section "16. The Hot Rod Interface" 16.1. About Hot Rod 16.2. Hot Rod Headers Expand section "16.2. Hot Rod Headers" Collapse section "16.2. Hot Rod Headers" 16.2.1. Hot Rod Header Data Types 16.2.2. Request Header 16.2.3. Response Header 16.2.4. Topology Change Headers Expand section "16.2.4. Topology Change Headers" Collapse section "16.2.4. Topology Change Headers" 16.2.4.1. Topology Change Headers 16.2.4.2. Topology Change Marker Values 16.2.4.3. Topology Change Headers for Topology-Aware Clients 16.2.4.4. Topology Change Headers for Hash Distribution-Aware Clients 16.3. Hot Rod Operations Expand section "16.3. Hot Rod Operations" Collapse section "16.3. Hot Rod Operations" 16.3.1. Hot Rod Operations 16.3.2. Hot Rod Authenticate Operation 16.3.3. Hot Rod AuthMechList Operation 16.3.4. Hot Rod BulkGet Operation 16.3.5. Hot Rod BulkKeysGet Operation 16.3.6. Hot Rod Clear Operation 16.3.7. Hot Rod ContainsKey Operation 16.3.8. Hot Rod Exec Operation 16.3.9. Hot Rod Get Operation 16.3.10. Hot Rod GetAll Operation 16.3.11. Hot Rod GetWithMetadata Operation 16.3.12. Hot Rod GetWithVersion Operation 16.3.13. Hot Rod IterationEnd Operation 16.3.14. Hot Rod IterationNext Operation 16.3.15. Hot Rod IterationStart Operation 16.3.16. Hot Rod Ping Operation 16.3.17. Hot Rod Put Operation 16.3.18. Hot Rod PutAll Operation 16.3.19. Hot Rod PutIfAbsent Operation 16.3.20. Hot Rod Query Operation 16.3.21. Hot Rod Remove Operation 16.3.22. Hot Rod RemoveIfUnmodified Operation 16.3.23. Hot Rod Replace Operation 16.3.24. Hot Rod ReplaceIfUnmodified Operation 16.3.25. Hot Rod ReplaceWithVersion Operation 16.3.26. Hot Rod Stats Operation 16.3.27. Hot Rod Size Operation 16.4. Hot Rod Operation Values Expand section "16.4. Hot Rod Operation Values" Collapse section "16.4. Hot Rod Operation Values" 16.4.1. Hot Rod Operation Values 16.4.2. Magic Values 16.4.3. Status Values 16.4.4. Client Intelligence Values 16.4.5. Flag Values 16.4.6. Hot Rod Error Handling 16.5. Hot Rod Remote Events Expand section "16.5. Hot Rod Remote Events" Collapse section "16.5. Hot Rod Remote Events" 16.5.1. Hot Rod Remote Events 16.5.2. Hot Rod Add Client Listener for Remote Events 16.5.3. Hot Rod Remote Client Listener for Remote Events 16.5.4. Hot Rod Event Header 16.5.5. Hot Rod Cache Entry Created Event 16.5.6. Hot Rod Cache Entry Modified Event 16.5.7. Hot Rod Cache Entry Removed Event 16.5.8. Hot Rod Custom Event 16.6. Put Request Example 16.7. Hot Rod Java Client Expand section "16.7. Hot Rod Java Client" Collapse section "16.7. Hot Rod Java Client" 16.7.1. Hot Rod Java Client 16.7.2. Hot Rod Java Client Download 16.7.3. Hot Rod Java Client Configuration 16.7.4. Hot Rod Java Client Basic API 16.7.5. Hot Rod Java Client Versioned API 16.7.6. Cluster-Wide Dynamic Cache Creation with Hot Rod Java Client 16.8. Hot Rod C++ Client Expand section "16.8. Hot Rod C++ Client" Collapse section "16.8. Hot Rod C++ Client" 16.8.1. Hot Rod C++ Client 16.8.2. Hot Rod C++ Client Formats 16.8.3. Hot Rod C++ Client Prerequisites 16.8.4. Installing the Hot Rod C++ Client Expand section "16.8.4. Installing the Hot Rod C++ Client" Collapse section "16.8.4. Installing the Hot Rod C++ Client" 16.8.4.1. Hot Rod C++ Client Download and Installation 16.8.4.2. Hot Rod C++ Client RHEL Download and Installation 16.8.4.3. Hot Rod C++ Client Windows Download and Installation 16.8.5. Utilizing the Protobuf Compiler with the Hot Rod C++ Client Expand section "16.8.5. Utilizing the Protobuf Compiler with the Hot Rod C++ Client" Collapse section "16.8.5. Utilizing the Protobuf Compiler with the Hot Rod C++ Client" 16.8.5.1. Using the Protobuf Compiler in RHEL 7 16.8.5.2. Using the Protobuf Compiler in Windows 16.8.6. Hot Rod C++ Client Configuration 16.8.7. Hot Rod C++ Client API 16.8.8. Hot Rod C++ Client Asynchronous API 16.8.9. Hot Rod C++ Client Remote Event Listeners 16.8.10. Hot Rod C++ Client Working with Sites Expand section "16.8.10. Hot Rod C++ Client Working with Sites" Collapse section "16.8.10. Hot Rod C++ Client Working with Sites" 16.8.10.1. Manual Cluster Switch 16.8.11. Performing Remote Queries via the Hot Rod C++ Client 16.8.12. Using the Near Cache with the Hot Rod C++ Client 16.8.13. Script Execution Using the Hot Rod C++ Client 16.9. Hot Rod C# Client Expand section "16.9. Hot Rod C# Client" Collapse section "16.9. Hot Rod C# Client" 16.9.1. Hot Rod C# Client 16.9.2. Hot Rod C# Client Download and Installation 16.9.3. Creating a Hot Rod C# .NET Project 16.9.4. Hot Rod C# Client Configuration 16.9.5. Hot Rod C# Client API 16.9.6. Hot Rod C# Client Asynchronous API 16.9.7. Hot Rod C# Client Remote Event Listeners 16.9.8. Hot Rod C# Client Working with Sites Expand section "16.9.8. Hot Rod C# Client Working with Sites" Collapse section "16.9.8. Hot Rod C# Client Working with Sites" 16.9.8.1. Manual Cluster Switch 16.9.9. Performing Remote Queries via the Hot Rod C# Client 16.9.10. Using the Near Cache with the Hot Rod C# Client 16.9.11. Script Execution Using the Hot Rod C# Client 16.9.12. String Marshaller for Interoperability 16.10. Hot Rod Node.js Client Expand section "16.10. Hot Rod Node.js Client" Collapse section "16.10. Hot Rod Node.js Client" 16.10.1. Hot Rod Node.js Client 16.10.2. Installing the Hot Rod Node.js Client 16.10.3. Hot Rod Node.js Requirements 16.10.4. Hot Rod Node.js Basic Functionality 16.10.5. Hot Rod Node.js Conditional Operations 16.10.6. Hot Rod Node.js Data Sets 16.10.7. Hot Rod Node.js Remote Events 16.10.8. Hot Rod Node.js Working with Clusters 16.10.9. Hot Rod Node.js Working with Sites Expand section "16.10.9. Hot Rod Node.js Working with Sites" Collapse section "16.10.9. Hot Rod Node.js Working with Sites" 16.10.9.1. Manual Cluster Switch 16.10.10. Memory Profiling Expand section "16.10.10. Memory Profiling" Collapse section "16.10.10. Memory Profiling" 16.10.10.1. Avoiding Memory Issues with Promises 16.11. Interoperability Between Hot Rod C++ and Hot Rod Java Client 16.12. Compatibility Between Server and Hot Rod Client Versions II. Creating and Using Infinispan Queries in Red Hat JBoss Data Grid Expand section "II. Creating and Using Infinispan Queries in Red Hat JBoss Data Grid" Collapse section "II. Creating and Using Infinispan Queries in Red Hat JBoss Data Grid" 17. Getting Started with Infinispan Query Expand section "17. Getting Started with Infinispan Query" Collapse section "17. Getting Started with Infinispan Query" 17.1. Introduction 17.2. Installing Querying for Red Hat JBoss Data Grid 17.3. About Querying in Red Hat JBoss Data Grid Expand section "17.3. About Querying in Red Hat JBoss Data Grid" Collapse section "17.3. About Querying in Red Hat JBoss Data Grid" 17.3.1. Hibernate Search and the Query Module 17.3.2. Apache Lucene and the Query Module 17.4. Indexing Expand section "17.4. Indexing" Collapse section "17.4. Indexing" 17.4.1. Indexing 17.4.2. Indexing with Transactional and Non-transactional Caches 17.4.3. Configure Indexing Programmatically 17.4.4. Rebuilding the Index 17.5. Searching 18. Annotating Objects and Querying Expand section "18. Annotating Objects and Querying" Collapse section "18. Annotating Objects and Querying" 18.1. Annotating Objects and Querying 18.2. Registering a Transformer via Annotations 18.3. Querying Example 19. Mapping Domain Objects to the Index Structure Expand section "19. Mapping Domain Objects to the Index Structure" Collapse section "19. Mapping Domain Objects to the Index Structure" 19.1. Basic Mapping Expand section "19.1. Basic Mapping" Collapse section "19.1. Basic Mapping" 19.1.1. Basic Mapping 19.1.2. @Indexed 19.1.3. @Field 19.1.4. @NumericField 19.2. Mapping Properties Multiple Times 19.3. Embedded and Associated Objects Expand section "19.3. Embedded and Associated Objects" Collapse section "19.3. Embedded and Associated Objects" 19.3.1. Embedded and Associated Objects 19.3.2. Indexing Associated Objects 19.3.3. @IndexedEmbedded 19.3.4. The targetElement Property 19.4. Boosting Expand section "19.4. Boosting" Collapse section "19.4. Boosting" 19.4.1. Boosting 19.4.2. Static Index Time Boosting 19.4.3. Dynamic Index Time Boosting 19.5. Analysis Expand section "19.5. Analysis" Collapse section "19.5. Analysis" 19.5.1. Default Analyzer and Analyzer by Class 19.5.2. Named Analyzers 19.5.3. Referencing Analyzer Definitions 19.5.4. @AnalyzerDef for Solr 19.5.5. Loading Analyzer Resources 19.5.6. Dynamic Analyzer Selection 19.5.7. Retrieving an Analyzer 19.6. Bridge Expand section "19.6. Bridge" Collapse section "19.6. Bridge" 19.6.1. Bridges 19.6.2. Built-in Bridges 19.6.3. Custom Bridges Expand section "19.6.3. Custom Bridges" Collapse section "19.6.3. Custom Bridges" 19.6.3.1. Custom Bridges 19.6.3.2. FieldBridge 19.6.3.3. StringBridge 19.6.3.4. Two-Way Bridge 19.6.3.5. Parameterized Bridge 19.6.3.6. Type Aware Bridge 19.6.3.7. ClassBridge 20. Querying Expand section "20. Querying" Collapse section "20. Querying" 20.1. Querying 20.2. Building Queries Expand section "20.2. Building Queries" Collapse section "20.2. Building Queries" 20.2.1. Building Queries 20.2.2. Building a Lucene Query Using the Lucene-based Query API 20.2.3. Building a Lucene Query Expand section "20.2.3. Building a Lucene Query" Collapse section "20.2.3. Building a Lucene Query" 20.2.3.1. Building a Lucene Query 20.2.3.2. Keyword Queries 20.2.3.3. Fuzzy Queries 20.2.3.4. Wildcard Queries 20.2.3.5. Phrase Queries 20.2.3.6. Range Queries 20.2.3.7. Combining Queries 20.2.3.8. Query Options 20.2.4. Build a Query with Infinispan Query Expand section "20.2.4. Build a Query with Infinispan Query" Collapse section "20.2.4. Build a Query with Infinispan Query" 20.2.4.1. Generality 20.2.4.2. Pagination 20.2.4.3. Sorting 20.2.4.4. Projection 20.2.4.5. Limiting the Time of a Query 20.2.4.6. Raise an Exception on Time Limit 20.3. Retrieving the Results Expand section "20.3. Retrieving the Results" Collapse section "20.3. Retrieving the Results" 20.3.1. Retrieving the Results 20.3.2. Performance Considerations 20.3.3. Result Size 20.3.4. Understanding Results 20.4. Filters Expand section "20.4. Filters" Collapse section "20.4. Filters" 20.4.1. Filters 20.4.2. Defining and Implementing a Filter 20.4.3. The @Factory Filter 20.4.4. Key Objects 20.4.5. Full Text Filter 20.4.6. Using Filters in a Sharded Environment 20.5. Continuous Queries Expand section "20.5. Continuous Queries" Collapse section "20.5. Continuous Queries" 20.5.1. Continuous Query 20.5.2. Continuous Query Evaluation 20.5.3. Using Continuous Queries 20.5.4. C++ and C# Continuous Queries Expand section "20.5.4. C++ and C# Continuous Queries" Collapse section "20.5.4. C++ and C# Continuous Queries" 20.5.4.1. C++ Continous Queries 20.5.4.2. C# Continuous Queries 20.5.5. Performance Considerations with Continuous Queries 20.6. Broadcast Queries Expand section "20.6. Broadcast Queries" Collapse section "20.6. Broadcast Queries" 20.6.1. Broadcast Queries Expand section "20.6.1. Broadcast Queries" Collapse section "20.6.1. Broadcast Queries" 20.6.1.1. Using Broadcast Queries 21. The Infinispan Query DSL Expand section "21. The Infinispan Query DSL" Collapse section "21. The Infinispan Query DSL" 21.1. The Infinispan Query DSL 21.2. Creating Queries with Infinispan Query DSL 21.3. Enabling Infinispan Query DSL-based Queries 21.4. Running Infinispan Query DSL-based Queries 21.5. Projection Queries 21.6. Grouping and Aggregation Operations 21.7. Using Named Parameters 22. Building a Query using the Ickle Query Language Expand section "22. Building a Query using the Ickle Query Language" Collapse section "22. Building a Query using the Ickle Query Language" 22.1. Building a Query using the Ickle Query Language 22.2. Ickle Query Language Parser Syntax 22.3. Fuzzy Queries 22.4. Range Queries 22.5. Phrase Queries 22.6. Proximity Queries 22.7. Wildcard Queries 22.8. Regular Expression Queries 22.9. Boosting Queries 23. Remote Querying Expand section "23. Remote Querying" Collapse section "23. Remote Querying" 23.1. Remote Querying 23.2. Querying Comparison 23.3. Performing Remote Queries via the Hot Rod Java Client 23.4. Remote Querying in the Hot Rod C++ Client 23.5. Remote Querying in the Hot Rod C# Client 23.6. Protobuf Encoding Expand section "23.6. Protobuf Encoding" Collapse section "23.6. Protobuf Encoding" 23.6.1. Protobuf Encoding 23.6.2. Storing Protobuf Encoded Entities 23.6.3. About Protobuf Messages 23.6.4. Using Protobuf with Hot Rod 23.6.5. Registering Per Entity Marshallers 23.6.6. Indexing Protobuf Encoded Entities 23.6.7. Controlling Field Indexing Expand section "23.6.7. Controlling Field Indexing" Collapse section "23.6.7. Controlling Field Indexing" 23.6.7.1. Example of an Annotated Message Type 23.6.7.2. Disabling Indexing for All Protobuf Message Types 23.6.8. Defining Protocol Buffers Schemas With Java Annotations III. Securing Data in Red Hat JBoss Data Grid Expand section "III. Securing Data in Red Hat JBoss Data Grid" Collapse section "III. Securing Data in Red Hat JBoss Data Grid" 24. Securing Data in Red Hat JBoss Data Grid 25. Red Hat JBoss Data Grid Security: Authorization and Authentication Expand section "25. Red Hat JBoss Data Grid Security: Authorization and Authentication" Collapse section "25. Red Hat JBoss Data Grid Security: Authorization and Authentication" 25.1. Red Hat JBoss Data Grid Security: Authorization and Authentication 25.2. Permissions 25.3. Role Mapping 25.4. Configuring Authentication and Role Mapping using Login Modules 25.5. Configuring Red Hat JBoss Data Grid for Authorization 25.6. Data Security for Library Mode Expand section "25.6. Data Security for Library Mode" Collapse section "25.6. Data Security for Library Mode" 25.6.1. Subject and Principal Classes 25.6.2. Obtaining a Subject 25.6.3. Subject Authentication 25.7. Securing Interfaces Expand section "25.7. Securing Interfaces" Collapse section "25.7. Securing Interfaces" 25.7.1. Securing Interfaces 25.7.2. Hot Rod Interface Security Expand section "25.7.2. Hot Rod Interface Security" Collapse section "25.7.2. Hot Rod Interface Security" 25.7.2.1. Encryption of communication between Hot Rod Server and Hot Rod client 25.7.2.2. Securing Hot Rod to LDAP Server using SSL 25.7.2.3. User Authentication over Hot Rod Using SASL Expand section "25.7.2.3. User Authentication over Hot Rod Using SASL" Collapse section "25.7.2.3. User Authentication over Hot Rod Using SASL" 25.7.2.3.1. User Authentication over Hot Rod Using SASL 25.7.2.3.2. Configure Hot Rod Authentication (GSSAPI/Kerberos) 25.7.2.3.3. Configure Hot Rod Authentication (MD5) 25.7.2.3.4. Configure Hot Rod C++ Authentication (GSSAPI/Kerberos) 25.7.2.3.5. Configure Hot Rod C++ Authentication (MD5) 25.7.2.3.6. Configure Hot Rod C++ Authentication (PLAIN) 25.7.2.3.7. Configure Hot Rod C# Authentication (EXTERNAL) 25.7.2.3.8. Configure Hot Rod C# Authentication (MD5) 25.7.3. Hot Rod C++ Client Encryption 25.7.4. Hot Rod C# Client Encryption 25.7.5. Hot Rod Node.js Encryption 25.8. The Security Audit Logger Expand section "25.8. The Security Audit Logger" Collapse section "25.8. The Security Audit Logger" 25.8.1. The Security Audit Logger 25.8.2. Configure the Security Audit Logger (Library Mode) 25.8.3. Custom Audit Loggers 26. Security for Cluster Traffic Expand section "26. Security for Cluster Traffic" Collapse section "26. Security for Cluster Traffic" 26.1. Configure Node Security in Library Mode 26.2. Node Authorization in Library Mode IV. Advanced Features in Red Hat JBoss Data Grid Expand section "IV. Advanced Features in Red Hat JBoss Data Grid" Collapse section "IV. Advanced Features in Red Hat JBoss Data Grid" 27. Advanced Features in Red Hat JBoss Data Grid 28. Monitoring Expand section "28. Monitoring" Collapse section "28. Monitoring" 28.1. Monitoring 28.2. About Java Management Extensions (JMX) Expand section "28.2. About Java Management Extensions (JMX)" Collapse section "28.2. About Java Management Extensions (JMX)" 28.2.1. About Java Management Extensions (JMX) 28.2.2. Using JMX with Red Hat JBoss Data Grid 28.2.3. Enabling JMX for Cache Instances 28.2.4. Enabling JMX for CacheManagers 28.2.5. Multiple JMX Domains 28.2.6. Registering MBeans in Non-Default MBean Servers 28.3. StatisticsInfoMBean 29. Red Hat JBoss Data Grid as Lucene Directory Expand section "29. Red Hat JBoss Data Grid as Lucene Directory" Collapse section "29. Red Hat JBoss Data Grid as Lucene Directory" 29.1. Red Hat JBoss Data Grid as Lucene Directory 29.2. Configuration 29.3. Red Hat JBoss Data Grid Modules 29.4. Lucene Directory Configuration for Replicated Indexing 29.5. JMS Master and Slave Back End Configuration 30. Transactions Expand section "30. Transactions" Collapse section "30. Transactions" 30.1. About Java Transaction API 30.2. Configure Transactions (Library Mode) 30.3. Transactions Spanning Multiple Cache Instances 30.4. The Transaction Manager 31. Marshalling Expand section "31. Marshalling" Collapse section "31. Marshalling" 31.1. Marshalling 31.2. About the JBoss Marshalling Framework 31.3. Support for Non-Serializable Objects 31.4. Hot Rod and Marshalling 31.5. Configuring the Marshaller using the RemoteCacheManager 31.6. Restricting Deserialization to Specific Java Classes 31.7. Troubleshooting Expand section "31.7. Troubleshooting" Collapse section "31.7. Troubleshooting" 31.7.1. Marshalling Troubleshooting 31.7.2. Other Marshalling Related Issues 32. The Infinispan CDI Module Expand section "32. The Infinispan CDI Module" Collapse section "32. The Infinispan CDI Module" 32.1. The Infinispan CDI Module 32.2. Using Infinispan CDI Expand section "32.2. Using Infinispan CDI" Collapse section "32.2. Using Infinispan CDI" 32.2.1. Infinispan CDI Prerequisites 32.2.2. Set the CDI Maven Dependency 32.3. Using the Infinispan CDI Module Expand section "32.3. Using the Infinispan CDI Module" Collapse section "32.3. Using the Infinispan CDI Module" 32.3.1. Using the Infinispan CDI Module 32.3.2. Configure and Inject Infinispan Caches Expand section "32.3.2. Configure and Inject Infinispan Caches" Collapse section "32.3.2. Configure and Inject Infinispan Caches" 32.3.2.1. Inject an Infinispan Cache 32.3.2.2. Inject a Remote Infinispan Cache 32.3.2.3. Set the Injection’s Target Cache Expand section "32.3.2.3. Set the Injection’s Target Cache" Collapse section "32.3.2.3. Set the Injection’s Target Cache" 32.3.2.3.1. Set the Injection’s Target Cache 32.3.2.3.2. Create a Qualifier Annotation 32.3.2.3.3. Add a Producer Class 32.3.2.3.4. Inject the Desired Class 32.3.3. Configure Cache Managers with CDI Expand section "32.3.3. Configure Cache Managers with CDI" Collapse section "32.3.3. Configure Cache Managers with CDI" 32.3.3.1. Configure Cache Managers with CDI 32.3.3.2. Specify the Default Configuration 32.3.3.3. Override the Creation of the Embedded Cache Manager 32.3.3.4. Configure a Remote Cache Manager 32.3.3.5. Configure Multiple Cache Managers with a Single Class 32.4. Storage and Retrieval Using CDI Annotations Expand section "32.4. Storage and Retrieval Using CDI Annotations" Collapse section "32.4. Storage and Retrieval Using CDI Annotations" 32.4.1. Configure Cache Annotations 32.4.2. Enable Cache Annotations 32.4.3. Caching the Result of a Method Invocation Expand section "32.4.3. Caching the Result of a Method Invocation" Collapse section "32.4.3. Caching the Result of a Method Invocation" 32.4.3.1. Caching the Result of a Method Invocation 32.4.3.2. Specify the Cache Used 32.4.3.3. Cache Keys for Cached Results 32.4.3.4. Generate a Custom Key 32.4.4. Cache Operations Expand section "32.4.4. Cache Operations" Collapse section "32.4.4. Cache Operations" 32.4.4.1. Update a Cache Entry 32.4.4.2. Remove an Entry from the Cache 32.4.4.3. Clear the Cache 33. Integration with the Spring Framework Expand section "33. Integration with the Spring Framework" Collapse section "33. Integration with the Spring Framework" 33.1. Enabling Spring Cache Support Expand section "33.1. Enabling Spring Cache Support" Collapse section "33.1. Enabling Spring Cache Support" 33.1.1. Declaratively Enabling Spring Cache Support 33.1.2. Programmatically Enabling Spring Cache Support 33.2. Adding the Spring Integration Module 33.3. Configuring Red Hat JBoss Data Grid as the Spring Caching Provider Expand section "33.3. Configuring Red Hat JBoss Data Grid as the Spring Caching Provider" Collapse section "33.3. Configuring Red Hat JBoss Data Grid as the Spring Caching Provider" 33.3.1. Declaratively Configuring JBoss Data Grid as the Spring Caching Provider 33.3.2. Programmatically Configuring JBoss Data Grid as the Spring Caching Provider 33.4. Adding Caching to Your Application Code 33.5. Configuring Timeouts for Cache Operations 33.6. Externalizing Sessions to Red Hat JBoss Data Grid Clusters 34. Integration with Apache Spark Expand section "34. Integration with Apache Spark" Collapse section "34. Integration with Apache Spark" 34.1. The JBoss Data Grid Apache Spark Connector 34.2. Spark Dependencies 34.3. Configuring the Spark Connector Expand section "34.3. Configuring the Spark Connector" Collapse section "34.3. Configuring the Spark Connector" 34.3.1. Properties to Configure the Version 1.6 Connector 34.3.2. Methods to Configure the Version 2 Connector 34.3.3. Connecting to a Secured JDG Cluster 34.4. Code Examples for Spark 1.6 Expand section "34.4. Code Examples for Spark 1.6" Collapse section "34.4. Code Examples for Spark 1.6" 34.4.1. Code Examples for Spark 1.6 34.4.2. Creating and Using RDDs 34.4.3. Creating an RDD 34.4.4. Querying an RDD 34.4.5. Writing an RDD to the Cache Expand section "34.4.5. Writing an RDD to the Cache" Collapse section "34.4.5. Writing an RDD to the Cache" 34.4.5.1. Creating and Using DStreams 34.4.6. Using the Infinispan Query DSL with Spark 34.4.7. Filtering by a Query 34.4.8. Filtering with a Projection 34.4.9. Filtering with a Deployed Filter 34.5. Code Examples for Spark 2 Expand section "34.5. Code Examples for Spark 2" Collapse section "34.5. Code Examples for Spark 2" 34.5.1. Code Examples for Spark 2 34.5.2. Creating and Using RDDs 34.5.3. Creating an RDD 34.5.4. Querying an RDD Expand section "34.5.4. Querying an RDD" Collapse section "34.5.4. Querying an RDD" 34.5.4.1. SparkSQL Queries 34.5.5. Writing an RDD to the Cache 34.5.6. Creating DStreams 34.5.7. Using The Apache Spark Dataset API 34.5.8. Using the Infinispan Query DSL with Spark 34.5.9. Filtering with a pre-built Query Object 34.5.10. Filtering with an Ickle Query 34.5.11. Filtering on the Server 34.6. Spark Performance Considerations 35. Integration with Apache Hadoop Expand section "35. Integration with Apache Hadoop" Collapse section "35. Integration with Apache Hadoop" 35.1. Integration with Apache Hadoop 35.2. Hadoop Dependencies 35.3. Supported Hadoop Configuration Parameters 35.4. Using the Hadoop Connector 36. Integration with EAP Expand section "36. Integration with EAP" Collapse section "36. Integration with EAP" 36.1. Integration with EAP 36.2. Installation of EAP Modules 36.3. EAP Dependencies 36.4. Dependencies for Specific JDG Components Expand section "36.4. Dependencies for Specific JDG Components" Collapse section "36.4. Dependencies for Specific JDG Components" 36.4.1. Core Dependencies 36.4.2. Remote/Hot Rod Dependencies 36.4.3. Embedded Querying Dependencies 36.4.4. Lucene Directory Dependencies 36.4.5. Hibernate Search Directory Provider Dependencies 36.4.6. Using EAP’s Internal Hibernate Search Modules 36.4.7. Usage with Other Hibernate Search Modules 36.5. Usage of EAP Modules Expand section "36.5. Usage of EAP Modules" Collapse section "36.5. Usage of EAP Modules" 36.5.1. Library Mode 36.5.2. EAP Subsystem Mode 36.6. Configuration for EAP Subsystem Mode 36.7. Accessing Containers and Caches Remotely 36.8. Troubleshooting EAP and JDG in EAP Subsystem Mode Expand section "36.8. Troubleshooting EAP and JDG in EAP Subsystem Mode" Collapse section "36.8. Troubleshooting EAP and JDG in EAP Subsystem Mode" 36.8.1. Enable logging 36.8.2. Print Dependency Tree 37. High Availability Using Server Hinting Expand section "37. High Availability Using Server Hinting" Collapse section "37. High Availability Using Server Hinting" 37.1. Server Hinting 37.2. ConsistentHashFactories Expand section "37.2. ConsistentHashFactories" Collapse section "37.2. ConsistentHashFactories" 37.2.1. ConsistentHashFactories 37.2.2. Implementing a ConsistentHashFactory 37.3. Key Affinity Service Expand section "37.3. Key Affinity Service" Collapse section "37.3. Key Affinity Service" 37.3.1. Key Affinity Service 37.3.2. Lifecycle 37.3.3. Topology Changes 38. Distributed Execution Expand section "38. Distributed Execution" Collapse section "38. Distributed Execution" 38.1. Distributed Execution 38.2. Distributed Executor Service 38.3. DistributedCallable API 38.4. Callable and CDI 38.5. Distributed Task Failover 38.6. Distributed Task Execution Policy 38.7. Distributed Execution and Locality Expand section "38.7. Distributed Execution and Locality" Collapse section "38.7. Distributed Execution and Locality" 38.7.1. Distributed Execution Example 39. Streams Expand section "39. Streams" Collapse section "39. Streams" 39.1. Streams 39.2. Using Streams on a Local/Invalidation/Replication Cache 39.3. Using Streams with a Distribution Cache 39.4. Setting Timeouts 39.5. Distributed Streams Expand section "39.5. Distributed Streams" Collapse section "39.5. Distributed Streams" 39.5.1. Distributed Streams 39.5.2. Marshallability 39.5.3. Parallelism 39.5.4. Distributed Operators Expand section "39.5.4. Distributed Operators" Collapse section "39.5.4. Distributed Operators" 39.5.4.1. Terminal Operator Distributed Result Reductions 39.5.4.2. Key Based Rehash Aware Operators 39.5.4.3. Intermediate Operation Exceptions 39.5.5. Distributed Stream Examples 40. Scripting Expand section "40. Scripting" Collapse section "40. Scripting" 40.1. Scripting 40.2. Accessing the Script Cache 40.3. Installing Scripts 40.4. Scripting Metadata 40.5. Script Bindings 40.6. Script Parameters 40.7. Script Execution Using the Hot Rod Java Client 40.8. Script Examples 40.9. Limitations when Executing Stored Scripts 41. Remote Task Execution Expand section "41. Remote Task Execution" Collapse section "41. Remote Task Execution" 41.1. Remote Task Execution 41.2. Creating Remote Tasks 41.3. Remote Task Example 41.4. Installing Remote Tasks 41.5. Removing Remote Tasks 41.6. Running Remote Tasks 42. Configuring Media Types Expand section "42. Configuring Media Types" Collapse section "42. Configuring Media Types" 42.1. Default Media Type 42.2. Supported Media Types 42.3. Declaratively Configuring Media Types 42.4. Programmatically Configuring Media Types 42.5. Overriding Media Types 43. Configuring Compatibility Mode Expand section "43. Configuring Compatibility Mode" Collapse section "43. Configuring Compatibility Mode" 43.1. Enabling Compatibility Mode 43.2. Marshallers in Compatibility Mode 43.3. Specifying the Marshaller Expand section "43.3. Specifying the Marshaller" Collapse section "43.3. Specifying the Marshaller" 43.3.1. Memcached Marshaller 44. Endpoint Interoperability Expand section "44. Endpoint Interoperability" Collapse section "44. Endpoint Interoperability" 44.1. Considerations with Media Types and Endpoint Interoperability Expand section "44.1. Considerations with Media Types and Endpoint Interoperability" Collapse section "44.1. Considerations with Media Types and Endpoint Interoperability" 44.1.1. REST and Hot Rod Interoperability with Text-Based Storage 44.1.2. Java and Non-Java Client Interoperability with Protobuf 45. Set Up Cross-Datacenter Replication Expand section "45. Set Up Cross-Datacenter Replication" Collapse section "45. Set Up Cross-Datacenter Replication" 45.1. Cross-Datacenter Replication 45.2. Cross-Datacenter Replication Operations 45.3. Configure Cross-Datacenter Replication Programmatically 45.4. Taking a Site Offline 45.5. Hot Rod Cross Site Cluster Failover 46. Near Caching Expand section "46. Near Caching" Collapse section "46. Near Caching" 46.1. Near Caching 46.2. Configuring Near Caches 46.3. Near Caches in a Clustered Environment 47. Conflict Manager Usage Expand section "47. Conflict Manager Usage" Collapse section "47. Conflict Manager Usage" 47.1. Find and Resolve Cache Conflicts A. References Expand section "A. References" Collapse section "A. References" A.1. The Externalizer Expand section "A.1. The Externalizer" Collapse section "A.1. The Externalizer" A.1.1. About Externalizer A.1.2. Internal Externalizer Implementation Access A.2. Hash Space Allocation Expand section "A.2. Hash Space Allocation" Collapse section "A.2. Hash Space Allocation" A.2.1. About Hash Space Allocation A.2.2. Locating a Key in the Hash Space 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 Developer Guide Red Hat Data Grid 7.2For use with Red Hat JBoss Data Grid 7.2Red Hat Customer Content ServicesLegal NoticeAbstract An advanced guide intended for developers using Red Hat JBoss Data Grid 7.2 Next