Go to main content
1/39
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
Conventions
What's New in This Guide
New and Changed Features
Other Significant Changes in This Document
Part I Getting Started
1
Introduction to Coherence*Extend
1.1
Overview of Coherence*Extend
1.2
Extend Clients
1.3
Extend Client APIs
1.4
POF Serialization
1.5
Understanding Extend Client Configuration Files
1.6
Non-Native Client Support
1.6.1
REST Client Support
1.6.2
Memcached Client Support
2
Building Your First Extend Application
2.1
Overview of the Extend Example
2.2
Step 1: Configure the Cluster Side
2.3
Step 2: Configure the Client Side
2.4
Step 3: Create the Sample Client
2.5
Step 4: Start the Cache Server Process
2.6
Step 5: Run the Application
3
Configuring Extend Proxies
3.1
Overview of Configuring Extend Proxies
3.2
Defining Extend Proxy Services
3.2.1
Defining a Single Proxy Service Instance
3.2.2
Defining Multiple Proxy Service Instances
3.2.3
Defining Multiple Proxy Services
3.2.4
Explicitly Configuring Proxy Addresses
3.2.5
Disabling Cluster Service Proxies
3.2.6
Specifying Read-Only NamedCache Access
3.3
Defining Caches for Use By Extend Clients
3.4
Disabling Storage on a Proxy Server
3.5
Starting a Proxy Server
4
Configuring Extend Clients
4.1
Overview of Configuring Extend Clients
4.2
Defining a Remote Cache
4.3
Using a Remote Cache as a Back Cache
4.4
Defining Remote Invocation Schemes
4.5
Connecting to Specific Proxy Addresses
4.6
Detecting Connection Errors
4.7
Disabling TCMP Communication
5
Advanced Extend Configuration
5.1
Using Address Provider References for TCP Addresses
5.2
Using a Custom Address Provider for TCP Addresses
5.3
Load Balancing Connections
5.3.1
Using Proxy-Based Load Balancing
5.3.1.1
Understanding the Proxy-Based Load Balancing Default Algorithm
5.3.1.2
Implementing a Custom Proxy-Based Load Balancing Strategy
5.3.2
Using Client-Based Load Balancing
5.4
Using Network Filters with Extend Clients
6
Best Practices for Coherence*Extend
6.1
Do Not Run a Near Cache on a Proxy Server
6.2
Configure Heap NIO Space to be Equal to the Max Heap Size
6.3
Configure Proxy Service Thread Pooling
6.3.1
Understanding Proxy Service Threading
6.3.2
Setting Proxy Service Thread Pooling Thresholds
6.3.3
Setting an Exact Number of Threads
6.4
Be Careful When Making InvocationService Calls
6.5
Be Careful When Placing Collection Classes in the Cache
6.6
Configure POF Serializers for Cache Servers
6.7
Configuring Firewalls for Extend Clients
Part II Creating Java Extend Clients
Part III Creating C++ Extend Clients
7
Introduction to Coherence C++ Clients
7.1
Overview of Coherence for C++
7.2
Setting Up C++ Application Builds
7.2.1
Setting up the Compiler for Coherence-Based Applications
7.2.2
Including Coherence Header Files
7.2.3
Linking the Coherence Library
7.2.4
Setting the run-time Library and Search Path
7.2.5
Deploying Coherence for C++
8
Configuration and Usage for C++ Clients
8.1
General Instructions
8.2
Implement the C++ Application
8.3
Compile and Link the Application
8.4
Configure Paths
8.5
Obtaining a Cache Reference with C++
8.6
Cleaning up Resources Associated with a Cache
8.7
Configuring and Using the Coherence for C++ Client Library
8.7.1
Setting the Configuration File Location with an Environment Variable
8.7.2
Setting the Configuration File Location Programmatically
8.8
Operational Configuration File (tangosol-coherence-override.xml)
8.9
Configuring a Logger
9
Using the Coherence C++ Object Model
9.1
Using the Object Model
9.1.1
Coherence Namespaces
9.1.2
Understanding the Base Object
9.1.3
Automatically Managed Memory
9.1.3.1
Referencing Managed Objects
9.1.3.2
Using handles
9.1.3.2.1
Assignment of handles
9.1.3.2.2
Dereferencing handles
9.1.3.3
Managed Object Instantiation
9.1.4
Managed Strings
9.1.4.1
String Instantiation
9.1.4.2
Auto-Boxed Strings
9.1.5
Type Safe Casting
9.1.5.1
Down Casting
9.1.6
Managed Arrays
9.1.7
Collection Classes
9.1.8
Managed Exceptions
9.1.9
Object Immutability
9.1.10
Integrating Existing Classes into the Object Model
9.2
Writing New Managed Classes
9.2.1
Specification-Based Managed Class Definition
9.2.2
Equality, Hashing, Cloning, Immutability, and Serialization
9.2.3
Threading
9.2.4
Weak References
9.2.5
Virtual Constructors
9.2.6
Advanced Handle Types
9.2.7
Thread Safety
9.2.7.1
Synchronization and Notification
9.2.7.2
Thread Safe Handles
9.2.7.3
Escape Analysis
9.2.7.3.1
Shared handles
9.2.7.3.2
Const Correctness
9.2.7.4
Thread-Local Allocator
9.3
Diagnostics and Troubleshooting
9.3.1
Thread-Local Allocator Logs
9.3.2
Thread Dumps
9.3.3
Memory Leak Detection
9.3.4
Memory Corruption Detection
9.4
Application Launcher - Sanka
9.4.1
Command line syntax
9.4.2
Built-in Executables
9.4.3
Sample Custom Executable Class
10
Using the Coherence for C++ Client API
10.1
CacheFactory
10.2
NamedCache
10.3
QueryMap
10.4
ObservableMap
10.5
InvocableMap
10.6
Filter
10.7
Value Extractors
10.8
Entry Processors
10.9
Entry Aggregators
11
Building Integration Objects (C++)
11.1
Overview of Building Integration Objects (C++)
11.2
POF Intrinsics
11.3
Serialization Options
11.3.1
Managed<T> (Free-Function Serialization)
11.3.2
PortableObject (Self-Serialization)
11.3.3
PofSerializer (External Serialization)
11.4
Using POF Object References
11.4.1
Enabling POF Object References
11.4.2
Registering POF Object Identities for Circular and Nested Objects
11.5
Registering Custom C++ Types
11.6
Implementing a Java Version of a C++ Object
11.7
Understanding Serialization Performance
11.8
Using POF Annotations to Serialize Objects
11.8.1
Annotating Objects for POF Serialization
11.8.2
Registering POF Annotated Objects
11.8.3
Enabling Automatic Indexing
11.8.4
Providing a Custom Codec
12
Querying a Cache (C++)
12.1
Overview of Query Functionality
12.2
Performing Simple Queries
12.2.1
Querying Partitioned Caches
12.2.2
Querying Near Caches
12.3
Understanding Query Concepts
12.4
Performing Queries Involving Multi-Value Attributes
12.5
Using a Chained Extractor in a Query
12.6
Using a Query Recorder
13
Performing Continuous Queries (C++)
13.1
Overview of Performing Continuous Queries (C++)
13.1.1
Understanding the Use Cases for Continuous Query Caching
13.2
Understanding Continuous Query Caching Implementation
13.3
Defining a Continuous Query Cache
13.4
Cleaning up Continuous Query Cache Resources
13.5
Caching Only Keys Versus Keys and Values
13.5.1
CacheValues Property and Event Listeners
13.5.2
Using ReflectionExtractor with Continuous Query Caches
13.6
Listening to a Continuous Query Cache
13.6.1
Avoiding Unexpected Results
13.6.2
Achieving a Stable Materialized View
13.7
Making a Continuous Query Cache Read-Only
14
Performing Remote Invocations (C++)
14.1
Overview of Performing Remote Invocations (C++)
14.2
Configuring and Using the Remote Invocation Service
14.3
Registering Invocable Implementation Classes
15
Using Cache Events (C++)
15.1
Overview of Map Events (C++)
15.1.1
Caches and Classes that Support Events
15.2
Signing Up for all Events
15.3
Using a Multiplexing Map Listener
15.4
Configuring a MapListener for a Cache
15.5
Signing Up for Events on Specific Identities
15.6
Filtering Events
15.7
Using Lite Events
15.8
Listening to Queries
15.9
Using Synthetic Events
15.10
Using Backing Map Events
15.11
Using Synchronous Event Listeners
16
Performing Transactions (C++)
16.1
Using the Transaction API within an Entry Processor
16.2
Creating a Stub Class for a Transactional Entry Processor
16.3
Registering a Transactional Entry Processor User Type
16.4
Configuring the Cluster-Side Transactional Caches
16.5
Configuring the Client-Side Remote Cache
16.6
Using a Transactional Entry Processor from a C++ Client
Part IV Creating .NET Extend Clients
17
Introduction to Coherence .NET Clients
17.1
Overview of Coherence for .NET
17.2
Configuration and Usage for .NET Clients
17.2.1
General Instructions
17.2.2
Configuring Coherence*Extend for .NET
17.2.3
Obtaining a Cache Reference with .NET
17.2.4
Cleaning Up Resources Associated with a Cache
17.2.5
Using Network Filters
17.2.5.1
Custom Filters
17.2.5.2
Configuring Filters
18
Building Integration Objects (.NET)
18.1
Overview of Building Integration Objects (.NET)
18.2
Creating an IPortableObject Implementation
18.3
Implementing a Java Version of a .NET Object
18.3.1
Creating a PortableObject Implementation (Java)
18.4
Registering Custom Types on the .NET Client
18.5
Registering Custom Types in the Cluster
18.6
Evolvable Portable User Types
18.7
Making Types Portable Without Modification
18.8
Using POF Object References
18.8.1
Enabling POF Object References
18.8.2
Registering POF Object Identities for Circular and Nested Objects
18.9
Using POF Annotations to Serialize Objects
18.9.1
Annotating Objects for POF Serialization
18.9.2
Registering POF Annotated Objects
18.9.3
Enabling Automatic Indexing
18.9.4
Providing a Custom Codec
19
Using the Coherence .NET Client Library
19.1
Setting Up the Coherence .NET Client Library
19.2
Using the Coherence .NET APIs
19.2.1
CacheFactory
19.2.2
IConfigurableCacheFactory
19.2.3
DefaultConfigurableCacheFactory
19.2.4
Logger
19.2.5
Using the Common.Logging Library
19.2.6
INamedCache
19.2.7
IQueryCache
19.2.8
QueryRecorder
19.2.9
IObservableCache
19.2.9.1
Responding to Cache Events
19.2.10
IInvocableCache
19.2.11
Filters
19.2.12
Value Extractors
19.2.13
Entry Processors
19.2.14
Entry Aggregators
19.3
Configuring .NET Clients Programmatically
20
Performing Continuous Queries (.NET)
20.1
Overview of Performing Continuous Queries (.NET)
20.1.1
Understanding Use Cases for Continuous Query Caching
20.2
Understanding the Continuous Query Caching Implementation
20.3
Constructing a Continuous Query Cache
20.4
Cleaning Up Continuous Query Cache Resources
20.5
Caching Only Keys Versus Keys and Values
20.6
Listening to a Continuous Query Cache
20.6.1
Achieving a Stable Materialized View
20.6.2
Support for Synchronous and Asynchronous Listeners
20.7
Making a Continuous Query Cache Read-Only
21
Performing Remote Invocations (.NET)
21.1
Overview of Performing Remote Invocations
21.2
Configuring and Using the Remote Invocation Service
22
Performing Transactions (.NET)
22.1
Using the Transaction API within an Entry Processor
22.2
Creating a Stub Class for a Transactional Entry Processor
22.3
Registering a Transactional Entry Processor User Type
22.4
Configuring the Cluster-Side Transactional Caches
22.5
Configuring the Client-Side Remote Cache
22.6
Using a Transactional Entry Processor from a .NET Client
23
Managing ASP.NET Session State
23.1
Overview
23.2
Setting Up Coherence Session Management
23.2.1
Enable the Coherence Session Provider
23.2.2
Configure the Cluster-Side ASP Session Caches
23.2.3
Configure a Client-Side ASP Session Remote Cache
23.2.4
Overriding the Default Session Cache Name
23.3
Selecting a Session Model
23.3.1
Specify the Session Model
23.3.1.1
Registering the Backing Map Listener
23.4
Specifying a Serializer
23.4.1
Using POF for Session Serialization
23.5
Sharing Session State Across Applications
Part V Using Coherence REST
24
Introduction to Coherence REST
24.1
Overview of Coherence REST
24.2
Dependencies for Coherence REST
24.3
Overview of Configuration for Coherence REST
24.4
Understanding Data Format Support
24.4.1
Using XML as the Data Format
24.4.2
Using JSON as the Data Format
24.5
Authenticating and Authorizing Coherence REST Clients
25
Building Your First Coherence REST Application
25.1
Overview of the Basic Coherence REST Example
25.2
Step 1: Configure the Cluster Side
25.3
Step 2: Create a User Type
25.4
Step 3: Configure REST Services
25.5
Step 4: Start the Cache Server Process
25.6
Step 5: Access REST Services From a Client
26
Performing Grid Operations with REST
26.1
Specifying Key and Value Types
26.2
Performing Single-Object REST Operations
26.3
Performing Multi-Object REST Operations
26.4
Performing Partial-Object REST Operations
26.5
Performing Queries with REST
26.5.1
Using Direct Queries
26.5.2
Using Named Queries
26.5.3
Specifying a Query Sort Order
26.5.4
Limiting Query Result Size
26.5.5
Retrieving Only Keys
26.5.6
Using Custom Query Engines
26.5.6.1
Implementing Custom Query Engines
26.5.6.2
Enabling Custom Query Engines
26.6
Performing Aggregations with REST
26.6.1
Aggregation Syntax for REST
26.6.2
Listing of Pre-Defined Aggregators
26.6.3
Creating Custom Aggregators
26.7
Performing Entry Processing with REST
26.7.1
Entry Processor Syntax for REST
26.7.2
Listing of Pre-defined Entry Processors
26.7.3
Creating Custom Entry Processors
26.8
Understanding Concurrency Control
26.9
Specifying Cache Aliases
26.10
Using Server-Sent Events
26.10.1
Receiving Server-Sent Events
27
Deploying Coherence REST
27.1
Deploying with the Embedded HTTP Server
27.2
Deploying to WebLogic Server
27.2.1
Task 1: Configure a WebLogic Server Domain for Coherence REST
27.2.2
Task 2: Package the Coherence REST Web Application
27.2.3
Task 3: Package the Coherence Application
27.2.4
Task 4: Package the Enterprise Application
27.2.5
Task 5: Deploy the Enterprise Application
27.3
Deploying to a Java EE Server (Generic)
27.3.1
Packaging Coherence REST for Deployment
27.3.2
Deploying to a Servlet Container
27.4
Configuring REST Server Access to POF-Enabled Services
28
Modifying the Default REST Implementation
28.1
Using Custom Providers and Resources
28.2
Changing the Embedded HTTP Server
28.2.1
Using Grizzly HTTP Server
28.2.2
Using Simple HTTP Server
28.2.3
Using Jetty HTTP Server
A
REST Configuration Elements
A.1
REST Configuration File
A.2
Element Reference
A.2.1
aggregator
A.2.2
aggregators
A.2.3
engine
A.2.4
marshaller
A.2.5
processor
A.2.6
processors
A.2.7
query
A.2.8
query-engines
A.2.9
resource
A.2.10
resources
A.2.11
rest
B
Integrating with F5 BIG-IP LTM
B.1
Basic Concepts
B.2
Creating Nodes
B.3
Configuring a Load Balancing Pool
B.3.1
Creating a Load Balancing Pool
B.3.2
Adding a Load Balancing Pool Member
B.4
Configuring a Virtual Server
B.5
Configuring Coherence*Extend to Use BIG-IP LTM
B.6
Using Advanced Health Monitoring
B.6.1
Creating a Custom Health Monitor to Ping Coherence
B.6.2
Manually Creating a Custom Health Monitor to Ping Coherence
B.6.3
Associating a Custom Health Monitor With a Load Balancing Pool
B.7
Enabling SSL Offloading
B.7.1
Import the Server's SSL Certificate and Key
B.7.2
Create the Client SSL Profile
B.7.3
Associate the Client SSL Profile
Scripting on this page enhances content navigation, but does not change the content in any way.