Go to main content
1/51
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
Conventions
What's New in This Guide
New and Changed Features for 12c (12.2.1)
Other Significant Changes in This Document for 12c (12.2.1)
Part I Getting Started
1
Introduction to Coherence
1.1
Basic Concepts
1.1.1
Clustered Data Management
1.1.2
A single API for the logical layer, XML configuration for the physical layer
1.1.3
Caching Strategies
1.1.4
Data Storage Options
1.1.5
Serialization Options
1.1.6
Configurability and Extensibility
1.1.7
Namespace Hierarchy
1.2
Read/Write Caching
1.2.1
NamedCache
1.2.2
NamedCache Usage Patterns
1.3
Querying the Cache
1.4
Invocation Service
1.5
Event Programming
1.6
Transactions
1.7
HTTP Session Management
1.8
Object-Relational Mapping Integration
1.9
C++/.NET Integration
1.10
Management and Monitoring
2
Building Your First Coherence Application
2.1
Task 1: Define the Example Cache
2.2
Task 2: Configure and Start the Example Cluster
2.3
Task 3: Create and Run a Basic Coherence Standalone Application
2.3.1
Create the Sample Standalone Application
2.3.2
Run the Sample Standalone Application
2.3.3
Verify the Example Cache
2.4
Task 4: Create and Run a Basic Coherence JavaEE Web Application
2.4.1
Create the Sample Web Application
2.4.2
Deploy and Run the Sample Web Application
2.4.3
Verify the Example Cache
2.5
Using JDeveloper for Coherence Development
2.5.1
Running Coherence in JDeveloper
2.5.2
Viewing Thread Dumps in JDeveloper
2.5.3
Creating Configuration Files in JDeveloper
3
Understanding Configuration
3.1
Overview of the Default Configuration Files
3.2
Specifying an Operational Configuration File
3.2.1
Using the Default Operational Override File
3.2.2
Specifying an Operational Override File
3.2.3
Defining Override Files for Specific Operational Elements
3.2.4
Viewing Which Operational Override Files are Loaded
3.3
Specifying a Cache Configuration File
3.3.1
Using a Default Cache Configuration File
3.3.2
Overriding the Default Cache Configuration File
3.3.3
Using the Cache Configuration File System Property
3.3.4
Viewing Which Cache Configuration File is Loaded
3.4
Specifying a POF Configuration File
3.4.1
Overriding the Default POF Configuration File
3.4.2
Using the POF Configuration File System Property
3.4.3
Combining Multiple POF Configuration Files
3.4.4
Viewing Which POF Configuration Files are Loaded
3.5
Specifying Management Configuration Files
3.5.1
Specifying a Custom Report Group Configuration File
3.5.1.1
Overriding the Default Report Group Configuration File
3.5.1.2
Using the Report Group Configuration File System Property
3.5.2
Specifying an MBean Configuration File
3.5.2.1
Using the Default MBean Configuration Override File
3.5.2.2
Using the MBean Configuration File System Property
3.5.3
Viewing Which Management Configuration Files are Loaded
3.6
Disabling Schema Validation
3.7
Understanding the XML Override Feature
3.7.1
Using the Predefined Override Files
3.7.2
Defining Custom Override Files
3.7.3
Defining Multiple Override Files for the Same Element
3.8
Changing Configuration Using System Properties
3.8.1
Using Preconfigured System Properties
3.8.2
Creating Custom System Properties
4
Debugging in Coherence
4.1
Overview of Debugging in Coherence
4.2
Configuring Logging
4.2.1
Changing the Log Level
4.2.2
Changing the Log Destination
4.2.2.1
Sending Log Messages to a File
4.2.3
Changing the Log Message Format
4.2.4
Setting the Logging Character Limit
4.2.5
Using JDK Logging for Coherence Logs
4.2.6
Using Log4J Logging for Coherence Logs
4.2.6.1
Mapping Log4J Log Levels with Coherence Log Levels
4.2.7
Using SLF4J for Coherence Logs
4.3
Performing Remote Debugging
4.4
Troubleshooting Coherence-Based Applications
4.4.1
Using Coherence Logs
4.4.2
Using JMX Management and Coherence Reports
4.4.3
Using JVM Options to Help Debug
4.4.4
Capturing Thread Dumps
4.4.5
Capturing Heap Dumps
4.4.6
Monitoring the Operating System
Part II Using Coherence Clusters
5
Introduction to Coherence Clusters
5.1
Cluster Overview
5.2
Understanding Clustered Services
5.3
Understanding TCMP
6
Setting Up a Cluster
6.1
Overview of Setting Up Clusters
6.2
Specifying a Cluster's Name
6.3
Specifying a Cluster Member's Identity
6.4
Configuring Multicast Communication
6.4.1
Specifying a Cluster's Multicast Address and Port
6.4.1.1
Changing the Multicast Socket Interface
6.4.2
Disabling Multicast Communication
6.4.3
Specifying the Multicast Time-to-Live
6.4.4
Specifying the Multicast Join Timeout
6.4.5
Changing the Multicast Threshold
6.5
Specifying a Cluster Member's Unicast Address
6.5.1
Changing the Default Unicast Address
6.5.2
Changing the Default Unicast Port
6.6
Using Well Known Addresses
6.6.1
Specifying WKA Addresses
6.6.2
Specifying a WKA Address Provider
6.7
Enabling Single-Server Mode
6.8
Configuring Death Detection
6.8.1
Changing TCP-Ring Settings
6.8.2
Changing the Heartbeat Interval
6.8.3
Disabling Death Detection
6.9
Specifying Cluster Priorities
6.9.1
Specifying a Cluster Member's Priority
6.9.2
Specifying Communication Thread Priorities
6.9.3
Specifying Thread Priorities for Services
6.10
Configuring Firewalls for Cluster Members
7
Starting and Stopping Cluster Members
7.1
Starting Cache Servers
7.1.1
Overview of the DefaultCacheServer Class
7.1.2
Starting Cache Servers From the Command Line
7.1.3
Starting Cache Servers Programmatically
7.2
Starting Cache Clients
7.2.1
Disabling Local Storage
7.2.2
Using the CacheFactory Class to Start a Cache Client
7.3
Stopping Cluster Members
7.3.1
Stopping Cluster Members From the Command Line
7.3.2
Stopping Cache Servers Programmatically
7.4
Performing a Rolling Restart
7.4.1
Prerequisites to Performing a Rolling Restart
7.4.2
Restarting Cache Servers for a Rolling Restart
8
Dynamically Managing Cluster Membership
8.1
Overview of Managing Cluster Membership
8.2
Using the Cluster and Service Objects
8.3
Using the Member Object
8.4
Listening to Member Events
9
Tuning TCMP Behavior
9.1
Overview of TCMP Data Transmission
9.2
Throttling Data Transmission
9.2.1
Adjusting Packet Flow Control Behavior
9.2.2
Disabling Packet Flow Control
9.2.3
Adjusting Packet Traffic Jam Behavior
9.3
Bundling Packets to Reduce Load
9.4
Changing Packet Retransmission Behavior
9.4.1
Changing the Packet Resend Interval
9.4.2
Changing the Packet Resend Timeout
9.4.3
Configuring Packet Acknowledgment Delays
9.5
Configuring the Size of the Packet Buffers
9.5.1
Understanding Packet Buffer Sizing
9.5.2
Configuring the Outbound Packet Buffer Size
9.5.3
Configuring the Inbound Packet Buffer Size
9.6
Adjusting the Maximum Size of a Packet
9.7
Changing the Packet Speaker Volume Threshold
9.8
Configuring the Incoming Message Handler
9.8.1
Changing the Time Variance
9.8.2
Disabling Negative Acknowledgments
9.9
Using Network Filters
9.9.1
Using the Compression Filter
9.9.1.1
Enabling the Compression Filter for Specific Services
9.9.1.2
Enabling the Compression Filter for All Services
9.9.1.3
Configuring the Compression Filter
9.9.2
Using Custom Network Filters
9.9.2.1
Declaring a Custom Filter
9.9.2.2
Enabling a Custom Filter for Specific Services
9.9.2.3
Enabling a Custom Filter for All Services
9.10
Changing the TCMP Socket Provider Implementation
9.10.1
Using the TCP Socket Provider
9.10.2
Using the SDP Socket Provider
9.10.3
Using the SSL Socket Provider
10
Using the Service Guardian
10.1
Overview
10.2
Configuring the Service Guardian
10.2.1
Setting the Guardian Timeout
10.2.1.1
Setting the Guardian Timeout for All Threads
10.2.1.2
Setting the Guardian Timeout Per Service Type
10.2.1.3
Setting the Guardian Timeout Per Service Instance
10.2.2
Using the Timeout Value From the PriorityTask API
10.2.3
Setting the Guardian Service Failure Policy
10.2.3.1
Setting the Guardian Failure Policy for All Threads
10.2.3.2
Setting the Guardian Failure Policy Per Service Type
10.2.3.3
Setting the Guardian Failure Policy Per Service Instance
10.2.3.4
Enabling a Custom Guardian Failure Policy
10.3
Issuing Manual Guardian Heartbeats
Part III Using Caches
11
Introduction to Coherence Caches
11.1
Understanding Distributed Caches
11.2
Understanding Replicated Caches
11.3
Understanding Optimistic Caches
11.4
Understanding Near Caches
11.5
Understanding Local Caches
11.6
Understanding Remote Caches
11.7
Summary of Cache Types
12
Configuring Caches
12.1
Overview
12.2
Defining Cache Mappings
12.2.1
Using Exact Cache Mappings
12.2.2
Using Name Pattern Cache Mappings
12.3
Defining Cache Schemes
12.3.1
Defining Distributed Cache Schemes
12.3.2
Defining Replicated Cache Schemes
12.3.3
Defining Optimistic Cache Schemes
12.3.4
Defining Local Cache Schemes
12.3.4.1
Controlling the Growth of a Local Cache
12.3.4.2
Specifying a Custom Eviction Policy
12.3.5
Defining Near Cache Schemes
12.3.5.1
Near Cache Invalidation Strategies
12.4
Using Scheme Inheritance
12.5
Using Cache Scheme Properties
12.6
Using Parameter Macros
12.6.1
Using User-Defined Parameter Macros
12.6.2
Using Predefined Parameter Macros
12.7
Using System Property Macros
13
Implementing Storage and Backing Maps
13.1
Cache Layers
13.2
Local Storage
13.3
Operations
13.4
Capacity Planning
13.5
Using Partitioned Backing Maps
13.6
Using the Elastic Data Feature to Store Data
13.6.1
Journaling Overview
13.6.2
Defining Journal Schemes
13.6.2.1
Configuring a RAM Journal Backing Map
13.6.2.2
Configuring a Flash Journal Backing Map
13.6.2.3
Referencing a Journal Scheme
13.6.2.4
Using Journal Expiry and Eviction
13.6.2.5
Using a Journal Scheme for Backup Storage
13.6.2.6
Enabling a Custom Map Implementation for a Journal Scheme
13.6.3
Changing Journaling Behavior
13.6.3.1
Configuring the RAM Journal Resource Manager
13.6.3.2
Configuring the Flash Journal Resource Manager
13.7
Using Asynchronous Backup
13.8
Using Delta Backup
13.8.1
Enabling Delta Backup
13.8.2
Enabling a Custom Delta Backup Compressor
14
Caching Data Sources
14.1
Overview of Caching Data Sources
14.1.1
Pluggable Cache Store
14.1.2
Read-Through Caching
14.1.3
Write-Through Caching
14.1.4
Write-Behind Caching
14.1.4.1
Write-Behind Requirements
14.1.5
Refresh-Ahead Caching
14.2
Selecting a Cache Strategy
14.2.1
Read-Through/Write-Through versus Cache-Aside
14.2.2
Refresh-Ahead versus Read-Through
14.2.3
Write-Behind versus Write-Through
14.3
Creating a Cache Store Implementation
14.4
Plugging in a Cache Store Implementation
14.5
Sample Cache Store Implementation
14.6
Sample Controllable Cache Store Implementation
14.7
Implementation Considerations
14.7.1
Idempotency
14.7.2
Write-Through Limitations
14.7.3
Cache Queries
14.7.4
Re-entrant Calls
14.7.5
Cache Server Classpath
14.7.6
CacheStore Collection Operations
14.7.7
Connection Pools
15
Serialization Paged Cache
15.1
Understanding Serialization Paged Cache
15.2
Configuring Serialization Paged Cache
15.3
Optimizing a Partitioned Cache Service
15.4
Configuring for High Availability
15.5
Configuring Load Balancing and Failover
15.6
Supporting Huge Caches
16
Using Quorum
16.1
Overview of Using Quorum
16.2
Using the Cluster Quorum
16.2.1
Configuring the Cluster Quorum Policy
16.3
Using the Partitioned Cache Quorums
16.3.1
Configuring the Partitioned Cache Quorum Policy
16.4
Using the Proxy Quorum
16.4.1
Configuring the Proxy Quorum Policy
16.5
Using Custom Action Policies
16.5.1
Enabling Custom Action Policies
16.5.2
Enabling the Custom Failover Access Policy
17
Cache Configurations by Example
17.1
Local Caches (accessible from a single JVM)
17.1.1
In-memory Cache
17.1.2
Size Limited In-memory Cache
17.1.3
In-memory Cache with Expiring Entries
17.1.4
In-memory Cache with Disk Based Overflow
17.1.5
Cache on Disk
17.1.6
Size Limited Cache on Disk
17.1.7
Persistent Cache on Disk
17.1.8
Cache of a Database
17.2
Clustered Caches (accessible from multiple JVMs)
17.2.1
Partitioned Cache
17.2.2
Partitioned Cache with Overflow
17.2.3
Partitioned Cache with Journal Storage
17.2.4
Partitioned Cache of a Database
17.2.5
Partitioned Cache with a Serializer
17.2.6
Near Cache
17.2.7
Replicated Cache
17.2.8
Replicated Cache with Overflow
18
Extending Cache Configuration Files
18.1
Introduction to Extending Cache Configuration Files
18.2
Declaring XML Namespaces
18.3
Creating Namespace Handlers
18.3.1
Implementing the Namespace Handler Interface
18.3.2
Extending the Namespace Handler Abstract Class
18.3.2.1
Registering Processors
18.3.2.2
Using Injection to Process Element Content
18.4
Example: the JNDI Resource Namespace Handler
18.4.1
Create the JNDI Resource Namespace Handler
18.4.2
Declare the JNDI Namespace Handler
18.4.3
Use the JNDI Resource Namespace Handler
Part IV Performing Data Grid Operations
19
Introduction to Coherence Programming
19.1
Overview of the Coherence API
19.2
Support for Generics
19.3
Support for Java 8 Features
20
Performing Basic Cache Operations
20.1
Overview of the NamedCache API
20.2
Getting a Cache Instance
20.2.1
Requirements for Cached Objects
20.3
Performing Cache Put Operations
20.4
Performing Cache Get Operations
20.5
Performing Cache Remove Operations
20.6
Using Default Map Operations
20.7
Pre-Loading a Cache
20.7.1
Bulk Loading Data Into a Cache
20.7.2
Performing Distributed Bulk Loading
20.7.2.1
A Distributed Bulk Loading Example
20.8
Clearing Caches
20.9
Releasing Caches
20.10
Destroying Caches
20.11
Performing NameCache Operations Asynchronously
20.12
Using NameCache Type Checking
21
Using Portable Object Format
21.1
Overview of POF Serialization
21.2
Using the POF API to Serialize Objects
21.2.1
Implementing the PortableObject Interface
21.2.2
Implementing the PofSerializer Interface
21.2.3
Guidelines for Assigning POF Indexes
21.2.4
Using POF Object References
21.2.4.1
Enabling POF Object References
21.2.4.2
Registering POF Object Identities for Circular and Nested Objects
21.2.5
Registering POF Objects
21.2.6
Configuring Coherence to Use the ConfigurablePofContext Class
21.2.6.1
Configure the ConfigurablePofContext Class Per Service
21.2.6.2
Configure the ConfigurablePofContext Class for All Services
21.2.6.3
Configure the ConfigurablePofContext Class For the JVM
21.3
Using POF Annotations to Serialize Objects
21.3.1
Annotating Objects for POF Serialization
21.3.2
Registering POF Annotated Objects
21.3.3
Generating a POF Configuration File
21.3.4
Enabling Automatic Indexing
21.3.5
Providing a Custom Codec
21.4
Using POF Extractors and POF Updaters
21.4.1
Navigating a POF object
21.4.2
Using POF Extractors
21.4.3
Using POF Updaters
21.5
Serializing Keys Using POF
22
Querying Data In a Cache
22.1
Query Overview
22.1.1
Query Concepts
22.2
Performing Queries
22.2.1
Efficient Processing of Filter Results
22.3
Using Query Indexes
22.3.1
Creating an Index
22.3.2
Creating User-Defined Indexes
22.3.2.1
Implementing the MapIndex Interface
22.3.2.2
Implementing the IndexAwareExtractor Interface
22.3.2.3
Using a Conditional Index
22.4
Performing Batch Queries
22.5
Performing Queries on Multi-Value Attributes
22.6
Using Chained Extractors
22.7
Evaluating Query Cost and Effectiveness
22.7.1
Creating Query Records
22.7.2
Interpreting Query Records
22.7.2.1
Query Explain Plan Record
22.7.2.2
Query Trace Record
22.7.3
Running The Query Record Example
23
Using Continuous Query Caching
23.1
Overview of Using Continuous Query Caching
23.1.1
Understanding Use Cases for Continuous Query Caching
23.2
Understanding the Continuous Query Cache Implementation
23.3
Constructing a Continuous Query Cache
23.3.1
Cleaning up the resources associated with a ContinuousQueryCache
23.4
Caching only keys, or caching both keys and values
23.5
Listening to the ContinuousQueryCache
23.5.1
Achieving a Stable Materialized View
23.5.2
Support for Synchronous and Asynchronous Listeners
23.6
Making the ContinuousQueryCache Read-Only
24
Processing Data In a Cache
24.1
Overview of Processing Data In a Cache
24.1.1
Performing Targeted Processing
24.1.2
Performing Parallel Processing
24.1.3
Performing Query-Based Processing
24.1.4
Performing Data-Grid-Wide Processing
24.2
Using Agents for Targeted, Parallel and Query-Based Processing
24.2.1
Processing Entries Using Lambda Expressions
24.2.2
Processing Entries in Multiple Caches
24.2.3
Ignoring the Results of an Entry Processor
24.2.4
Performing Synthetic Operations
24.2.5
Processing Entries Asynchronously
24.3
Performing Data Grid Aggregation
24.4
Performing Data Grid Aggregation Using Streams
24.5
Performing Node-Based Processing
24.6
Using a Work Manager
25
Using Map Events
25.1
Overview of Map Events
25.1.1
Listener Interface and Event Object
25.1.2
Understanding Event Guarantees
25.1.3
Caches and Classes that Support Events
25.2
Signing Up for All Events
25.3
Using an Inner Class as a MapListener
25.4
Using Lambda Expressions to Add Map Listeners
25.5
Configuring a MapListener For a Cache
25.6
Signing Up For Events On Specific Identities
25.7
Filtering Events
25.8
Using Lite Events
25.9
Listening to Queries
25.9.1
Filtering Events Versus Filtering Cached Data
25.10
Using Synthetic Events
25.11
Using Backing Map Events
25.11.1
Producing Readable Backing MapListener Events from Distributed Caches
25.12
Using Synchronous Event Listeners
26
Controlling Map Operations with Triggers
26.1
Overview of Map Triggers
26.2
A Map Trigger Example
27
Using Live Events
27.1
Overview of Live Events
27.2
Understanding Live Event Types
27.2.1
Understanding Partitioned Cache Events
27.2.1.1
Entry Events
27.2.1.2
Entry Processor Events
27.2.2
Understanding Partitioned Cache Lifecycle Events
27.2.3
Understanding Partitioned Service Events
27.2.3.1
Transfer Events
27.2.3.2
Transaction Events
27.2.3.3
Unsolicited Commit Events
27.2.4
Understanding Lifecycle Events
27.2.5
Understanding Federation Events
27.2.5.1
Federated Connection Events
27.2.5.2
Federated Change Events
27.2.5.3
Federated Partition Events
27.3
Handling Live Events
27.3.1
Creating Event Interceptors
27.3.2
Understanding Event Threading
27.3.3
Registering Event Interceptors
27.3.3.1
Registering Event Interceptors For a Specific Cache
27.3.3.2
Registering Event Interceptors For a Partitioned Service
27.3.3.3
Registering Event Interceptors For a Cache Configuration Factory
27.3.3.4
Using Custom Registration
27.3.3.5
Guidelines for Registering Event Interceptors
27.3.4
Chaining Event Interceptors
27.3.4.1
Specifying an Event Interceptor Chain Order
28
Using Coherence Query Language
28.1
Understanding Coherence Query Language Syntax
28.1.1
Query Syntax Basics
28.1.1.1
Using Path-Expressions
28.1.1.2
Using Bind Variables
28.1.1.3
Using Key and Value Pseudo-Functions
28.1.1.4
Using Aliases
28.1.1.5
Using Quotes with Literal Arguments
28.1.2
Managing the Cache Lifecycle
28.1.2.1
Creating a Cache
28.1.2.2
Removing a Cache from the Cluster
28.1.2.3
Writing a Serialized Representation of a Cache to a File
28.1.2.4
Restoring Cache Contents from a File
28.1.3
Retrieving Data
28.1.3.1
Retrieving Data from the Cache
28.1.3.2
Filtering Entries in a Result Set
28.1.4
Working with Cache Data
28.1.4.1
Aggregating Query Results
28.1.4.2
Changing Existing Values
28.1.4.3
Inserting Entries in the Cache
28.1.4.4
Deleting Entries in the Cache
28.1.5
Working with Indexes
28.1.5.1
Creating an Index on the Cache
28.1.5.2
Removing an Index from the Cache
28.1.6
Issuing Multiple Query Statements
28.1.6.1
Processing Query Statements in Batch Mode
28.1.7
Persisting Cache Data to Disk
28.1.7.1
Creating Snapshots
28.1.7.2
Validating Snapshots
28.1.7.3
Recovering Snapshots
28.1.7.4
Archiving Snapshots
28.1.7.5
Validating Archived Snapshots
28.1.7.6
Retrieving Archived Snapshots
28.1.7.7
Removing Snapshots
28.1.7.8
Suspending Services During Persistence Operations
28.1.8
Viewing Query Cost and Effectiveness
28.1.9
Handling Errors
28.2
Using the CohQL Command-Line Tool
28.2.1
Starting the Command-line Tool
28.2.2
Using Command-Line Tool Arguments
28.2.3
Setting the Request Timeout
28.2.4
A Command-Line Example
28.3
Building Filters in Java Programs
28.4
Additional Coherence Query Language Examples
28.4.1
Simple SELECT * FROM Statements that Highlight Filters
28.4.2
Complex Queries that Feature Projection, Aggregation, and Grouping
28.4.3
UPDATE Examples
28.4.4
Key and Value Pseudo-Function Examples
29
Performing Transactions
29.1
Overview of Transactions
29.2
Using Explicit Locking for Data Concurrency
29.3
Using Entry Processors for Data Concurrency
29.4
Using the Transaction Framework API
29.4.1
Defining Transactional Caches
29.4.2
Performing Cache Operations within a Transaction
29.4.2.1
Using the NamedCache API
29.4.2.2
Using the Connection API
29.4.3
Creating Transactional Connections
29.4.4
Using Transactional Connections
29.4.4.1
Using Auto-Commit Mode
29.4.4.2
Setting Isolation Levels
29.4.4.3
Using Eager Mode
29.4.4.4
Setting Transaction Timeout
29.4.5
Using the OptimisticNamedCache Interface
29.4.6
Configuring POF When Performing Transactions
29.4.7
Configuring Transactional Storage Capacity
29.4.8
Performing Transactions from Java Extend Clients
29.4.8.1
Create an Entry Processor for Transactions
29.4.8.2
Configure the Cluster-Side Transaction Caches
29.4.8.3
Configure the Client-Side Remote Cache
29.4.8.4
Use the Transactional Entry Processor from a Java Client
29.4.9
Viewing Transaction Management Information
29.4.9.1
CacheMBeans for Transactional Caches
29.4.9.2
TransactionManagerBean
29.5
Using the Coherence Resource Adapter
29.5.1
Performing Cache Operations within a Transaction
29.5.1.1
Creating a Coherence Connection
29.5.1.2
Getting a Named Cache
29.5.1.3
Demarcating Transaction Boundaries
29.5.2
Packaging the Application
29.5.2.1
Configure the Connection Factory Resource Reference
29.5.2.2
Configure the Resource Adapter Module Reference
29.5.2.3
Include the Required Libraries
29.5.3
Using the Coherence Cache Adapter for Transactions
30
Working with Partitions
30.1
Specifying Data Affinity
30.1.1
Overview of Data Affinity
30.1.2
Specifying Data Affinity with a KeyAssociation
30.1.3
Specifying Data Affinity with a KeyAssociator
30.1.4
Deferring the Key Association Check
30.1.5
Example of Using Affinity
30.2
Changing the Number of Partitions
30.2.1
Deciding the number of Partitions
30.3
Changing the Partition Distribution Strategy
30.3.1
Specifying a Partition Assignment Strategy
30.3.2
Enabling a Custom Partition Assignment Strategy
31
Managing Thread Execution
31.1
Overview of Priority Tasks
31.2
Setting Priority Task Timeouts
31.2.1
Configuring Execution Timeouts
31.2.2
Execution Timeout Command Line Options
31.3
Creating Priority Task Execution Objects
31.3.1
APIs for Creating Priority Task Objects
31.3.2
Errors Thrown by Task Timeouts
32
Constraints on Re-entrant Calls
32.1
Overview of Constraints on Re-Entrant Calls
32.2
Re-entrancy, Services, and Service Threads
32.2.1
Parent-Child Object Relationships
32.2.2
Avoiding Deadlock
32.3
Re-entrancy and Listeners
Part V Using the Coherence JCache Implementation
33
Introduction to Coherence JCache
33.1
Overview of the Coherence JCache Implementation
33.2
Comparison of JCache and NamedCache Features
33.3
Dependencies for Coherence JCache
33.4
Overview of Configuration for the Coherence JCache Provider
33.5
JCache Primer
33.5.1
What is JCache
33.5.2
JCache Caching Providers and Cache Managers
33.5.3
JCache Caches
33.5.4
JCache Cache Configuration
33.5.5
JCache Custom Programming
33.5.6
JCache Management
34
Building Your First Coherence JCache Application
34.1
Task 1: Create a Simple Object
34.2
Task 2: Store the Object in a Local Cache
34.2.1
Create the Sample JCache Application
34.2.2
Run the Sample JCache Application
34.3
Task 3: Configure an Example Cluster
34.4
Task 4: Store the Object in a Partitioned Cache
34.4.1
Start the Example Cache Server
34.4.2
Run The Application
34.4.3
Verify the Cache
34.5
Task 5: Store the Object in a Pass-Through Cache
34.5.1
Define the Example Cache
34.5.2
Start the Example Cache Server
34.5.3
Run the Application
34.5.4
Verify the Cache
35
Performing Basic Coherence JCache Tasks
35.1
Specifying Coherence as the JCache Provider
35.2
Creating Coherence JCache Caches
35.2.1
Creating Local Caches
35.2.2
Creating Partitioned Caches
35.2.3
Creating Pass-Through Caches
35.2.4
Creating Remote Caches
35.2.5
Using Native Coherence Functionality from JCache
35.2.5.1
Accessing NamedCache Instances from JCache
35.2.5.2
Using Coherence Configuration with JCache
35.3
Configuring Coherence JCache Caches
35.3.1
Setting Store-By Semantics
35.3.2
Setting Cache Entry Types
35.3.3
Setting Cache Expiry
35.3.4
Enabling Read-Through and Write-Through Caching
35.3.5
Enabling Management
35.4
Performing Cache Operations
35.5
Using Read-Through and Write-Through Caching
35.5.1
Providing a Read-Through Implementation
35.5.1.1
Pre-Loading a Cache
35.5.2
Providing a Write-Through Implementation
35.6
Configuring a JCache POF Configuration file
35.7
Viewing JCache Management Information
35.7.1
Understanding the JCache CacheConfiguration MBean
35.7.1.1
JCache CacheConfiguration MBean Attributes
35.7.1.2
JCache CacheConfiguration MBean Operations
35.7.2
Understanding the JCache CacheStatistics MBean
35.7.2.1
JCache CacheStatistics MBean Attributes
35.7.2.2
JCache CacheStatistics MBean Operations
35.7.3
Changing the Refresh Interval for Partitioned Cache Statistics
36
Using JCache Events
36.1
Overview of Using JCache Events
36.2
Creating Event Listeners
36.3
Creating Event Filters
36.4
Registering Event Listeners and Filters
36.4.1
Registering Event Listeners and Filters During Cache Configuration
36.4.2
Registering Event Listeners and Filters at Runtime
37
Processing JCache Entries
37.1
Overview of Processing JCache Entries
37.2
Creating Entry Processors
37.3
Using Entry Processors
37.3.1
Invoking Entry Processors for a Single Key
37.3.2
Invoking Entry Processors for Multiple Keys
A
Operational Configuration Elements
A.1
Operational Deployment Descriptor
A.2
Operational Override File
A.3
Element Reference
A.3.1
access-controller
A.3.2
active-passive
A.3.3
address-provider
A.3.4
address-providers
A.3.5
authorized-hosts
A.3.6
cache-factory-builder-config
A.3.7
callback-handler
A.3.8
central-replication
A.3.9
cluster-config
A.3.10
cluster-quorum-policy
A.3.11
coherence
A.3.12
configurable-cache-factory-config
A.3.13
custom-topology
A.3.14
federation-config
A.3.15
filter
A.3.16
filters
A.3.17
flashjournal-manager
A.3.18
flow-control
A.3.19
group
A.3.20
groups
A.3.21
host-range
A.3.22
hub-spoke
A.3.23
identity-asserter
A.3.24
identity-manager
A.3.25
identity-transformer
A.3.26
incoming-message-handler
A.3.27
init-param
A.3.28
init-params
A.3.29
instance
A.3.30
interceptor
A.3.31
interceptors
A.3.32
journaling-config
A.3.33
key-store
A.3.34
license-config
A.3.35
logging-config
A.3.36
management-config
A.3.37
mbean
A.3.38
mbeans
A.3.39
mbean-filter
A.3.40
member-identity
A.3.41
multicast-listener
A.3.42
name-service-addresses
A.3.43
notification-queueing
A.3.44
outgoing-message-handler
A.3.45
outstanding-packets
A.3.46
packet-buffer
A.3.47
packet-bundling
A.3.48
packet-delivery
A.3.49
packet-publisher
A.3.50
packet-size
A.3.51
packet-speaker
A.3.52
participant
A.3.53
participants
A.3.54
pause-detection
A.3.55
persistence-environment
A.3.56
persistence-environments
A.3.57
provider
A.3.58
ramjournal-manager
A.3.59
remote-addresses
A.3.60
reporter
A.3.61
security-config
A.3.62
serializer
A.3.63
serializers
A.3.64
service
A.3.64.1
Initialization Parameter Settings
A.3.64.1.1
DistributedCache Service Parameters
A.3.64.1.2
ReplicatedCache Service Parameters
A.3.64.1.3
OptimisticCache Service Parameters
A.3.64.1.4
Invocation Service Parameters
A.3.64.1.5
LocalCache Service Parameters
A.3.64.1.6
Proxy Service Parameters
A.3.64.1.7
RemoteCache Service Parameters
A.3.64.1.8
RemoteInvocation Service Parameters
A.3.64.1.9
NameService Parameters
A.3.64.1.10
RemoteNameService Parameters
A.3.64.1.11
FederatedCache Service Parameters
A.3.65
service-guardian
A.3.66
services
A.3.67
shutdown-listener
A.3.68
snapshot-archivers
A.3.69
socket-address
A.3.70
socket-provider
A.3.71
socket-providers
A.3.72
ssl
A.3.73
storage-authorizer
A.3.74
storage-authorizers
A.3.75
tcp-ring-listener
A.3.76
topology-definitions
A.3.77
traffic-jam
A.3.78
trust-manager
A.3.79
unicast-listener
A.3.80
volume-threshold
A.3.81
well-known-addresses
A.4
Attribute Reference
B
Cache Configuration Elements
B.1
Cache Configuration Deployment Descriptor
B.2
Element Reference
B.2.1
acceptor-config
B.2.2
address-provider
B.2.3
async-store-manager
B.2.4
authorized-hosts
B.2.5
back-scheme
B.2.6
backing-map-scheme
B.2.7
backup-storage
B.2.8
bdb-store-manager
B.2.9
bundle-config
B.2.10
cache-config
B.2.11
cache-mapping
B.2.12
cache-service-proxy
B.2.13
cachestore-scheme
B.2.14
caching-scheme-mapping
B.2.15
caching-schemes
B.2.16
class-scheme
B.2.17
custom-store-manager
B.2.18
defaults
B.2.19
distributed-scheme
B.2.20
external-scheme
B.2.21
federated-scheme
B.2.22
flashjournal-scheme
B.2.23
front-scheme
B.2.24
http-acceptor
B.2.25
identity-manager
B.2.26
incoming-message-handler
B.2.27
initiator-config
B.2.28
init-param
B.2.29
init-params
B.2.30
instance
B.2.31
interceptor
B.2.32
interceptors
B.2.33
invocation-scheme
B.2.34
invocation-service-proxy
B.2.35
key-associator
B.2.36
key-partitioning
B.2.37
key-store
B.2.38
listener
B.2.39
local-address
B.2.40
local-scheme
B.2.41
memcached-acceptor
B.2.42
name-service-addresses
B.2.43
near-scheme
B.2.44
nio-file-manager
B.2.45
operation-bundling
B.2.46
optimistic-scheme
B.2.47
outgoing-message-handler
B.2.48
overflow-scheme
B.2.49
paged-external-scheme
B.2.50
partition-listener
B.2.51
partitioned-quorum-policy-scheme
B.2.52
persistence
B.2.53
provider
B.2.54
proxy-config
B.2.55
proxy-scheme
B.2.56
proxy-quorum-policy-scheme
B.2.57
ramjournal-scheme
B.2.58
read-write-backing-map-scheme
B.2.59
remote-addresses
B.2.60
remote-cache-scheme
B.2.61
remote-invocation-scheme
B.2.62
replicated-scheme
B.2.63
resource-config
B.2.64
serializer
B.2.65
socket-address
B.2.66
socket-provider
B.2.67
ssl
B.2.68
tcp-acceptor
B.2.69
tcp-initiator
B.2.70
topologies
B.2.71
topology
B.2.72
transactional-scheme
B.2.73
trust-manager
B.3
Attribute Reference
C
POF User Type Configuration Elements
C.1
POF Configuration Deployment Descriptor
C.2
Element Reference
C.2.1
default-serializer
C.2.2
init-param
C.2.3
init-params
C.2.4
pof-config
C.2.5
serializer
C.2.6
user-type
C.2.7
user-type-list
D
System Property Overrides
D.1
Overview of System Property Overrides
D.2
Override Example
D.3
Preconfigured Override Values
E
The PIF-POF Binary Format
E.1
Overview of the PIF-POF Binary Format
E.2
Stream Format
E.2.1
Integer Values
E.2.2
Type Identifiers
E.3
Binary Formats for Predefined Types
E.3.1
Int
E.3.1.1
Coercion of Integer Types
E.3.2
Decimal
E.3.3
Floating Point
E.3.4
Boolean
E.3.5
Octet
E.3.6
Octet String
E.3.7
Char
E.3.8
Char String
E.3.9
Date
E.3.10
Year-Month Interval
E.3.11
Time
E.3.12
Time Interval
E.3.13
Date-Time
E.3.13.1
Coercion of Date and Time Types
E.3.14
Day-Time Interval
E.3.15
Collections
E.3.16
Arrays
E.3.17
Sparse Arrays
E.3.18
Key-Value Maps (Dictionaries)
E.3.19
Identity
E.3.20
Reference
E.4
Binary Format for User Types
E.4.1
Versioning of User Types
Scripting on this page enhances content navigation, but does not change the content in any way.