Go to main content
1/25
Contents
Title and Copyright Information
Preface
Audience
Related Documents
Conventions
What's New in This Guide
Part I Application Development
1
Introduction to Application Development
1.1
EPN Diagram
1.2
Component Configuration
1.3
Streams and Relations
1.4
Application Scalability and High Availability
1.5
Application Life Cycle
1.6
API Overview
1.7
Spring Framework
1.8
OSGi Service Platform
2
Application and Resource Configuration
2.1
Application Configuration
2.2
Assembly File Structure
2.2.1
Nested Stages in an EPN Assembly File
2.2.2
Foreign Stages in an EPN Assembly File
2.3
Component Configuration File Structure
2.4
Component and Server Configuration
2.5
Resource Access Configuration
2.5.1
Resource Access Annotations
2.5.2
Static Resource Injection
2.5.2.1
Static Resource Names
2.5.2.2
Dynamic Resource Names
2.5.3
Dynamic Resource Injection
2.5.4
Dynamic Resource Lookup Using JNDI
2.5.5
Resource Name Resolution
3
Events and Event Types
3.1
How Events Function
3.2
Choose a Data Structure for the Event Type
3.3
Design Constraints
3.4
Event Type Repository
3.5
Properties
3.6
Interval and Time Stamp Properties
3.6.1
Interval Properties
3.6.2
Time Stamp with Local Time Zone Properties
3.7
Create and Register a JavaBean Event Type
3.7.1
Data Types
3.7.2
Create a JavaBean Event Type Declaratively
3.7.3
Create a JavaBean Event Type Programmatically
3.7.4
Usages
3.8
Create and Register a Tuple Event Type
3.8.1
Create a Tuple Event Type in the Assembly File
3.8.2
Use a Tuple Event Type in Java Code
3.8.3
Use a Tuple Event Type Instance in Oracle CQL Code
3.9
Create and Register a Map Event Type
3.10
Access the Event Type Repository
3.10.1
EPN Assembly File
3.10.2
Spring-DM @ServiceReference Annotation
3.10.3
Oracle Stream Analytics @Service Annotation
3.11
Share Event Types Between Application Bundles
3.12
Control Event Type Instantiation with an Event Type Builder Class
3.12.1
Implement an Event Type Builder Class
3.12.2
An Event Type that Uses an Event Type Builder
4
Adapters
4.1
Create Adapters
4.2
Cluster Distribution Service
4.3
Password Encryption
4.4
JAXB Support
4.4.1
EclipseLink Moxy
4.4.2
APIs
4.5
CSV Adapters
4.6
EDN Adapters
4.6.1
Usage
4.6.2
Create EDN Adapters
4.7
File Adapter
4.8
HTTP Publish-Subscribe Adapter
4.9
HTTP Publish-Subscribe Adapter Custom Converter Bean
4.9.1
Bayeux Protocol
4.9.2
Create a Custom Converter Bean
4.10
JMS Adapters
4.10.1
Service Providers
4.10.2
Inbound Adapter Configuration
4.10.2.1
Single and Multithreaded Inbound JMS Adapters
4.10.2.2
Configure a JMS Adapter for Durable Subscriptions
4.10.3
Outbound Adapter Configuration
4.11
JMS Custom Message Converter Bean
4.11.1
Implement Interfaces
4.11.2
Implement the Inbound JMS Adapter
4.11.3
Implement the Outbound JMS Adapter
4.12
Oracle Business Rules Adapter
4.13
QuickFix Adapter
4.13.1
Supported QuickFIX Versions and Unsupported Message Types
4.13.2
Configure QuickFix Adapters
4.13.3
Configure a Socket-Based Acceptor Failover
4.14
REST Adapter
4.15
RMI Adapters
4.16
Twitter Adapter
4.16.1
Configuration of the Twitter Adapter
4.16.2
Dependencies for the Twitter Adpater
4.16.3
Twitter Inbound Adapter
4.16.4
Example with the Filter Option
4.17
MQTT Adapter
4.17.1
MQTT Configuration Parameters
4.17.2
MQTT Receiver EPN
4.17.3
MQTT Sender EPN
4.18
Kafka Adapter
4.18.1
Inbound Adapter receiving messages from Kafka
4.18.2
Outbound Adapter sending messages to Kafka
4.18.3
Kafka Configuration
4.19
Coherence Adapter
4.19.1
Coherence Inbound Adapter
4.19.2
Coherence Outbound Adapter
4.19.3
OracleCoherenceCache
4.19.4
EmployeeEvent
5
Channels
5.1
When to Use a Channel
5.2
Channel Configuration
5.2.1
Assembly File
5.2.2
Configuration File
5.3
Control Which Queries Output to a Downstream Channel
5.4
Batch Processing Channels
5.5
Fault Handling
5.6
EventPartitioner Channels
5.7
Distributed Flows
5.7.1
Examples of Distributed Flows
5.7.2
Local Partitioning Channel
6
Oracle CQL Processors
6.1
Processor Data Sources
6.2
Assembly and Configuration Files
6.3
Queries
6.3.1
Stream Channels
6.3.2
Time-Based Relations (Windows)
6.3.2.1
Stream to Relation Operators
6.3.2.2
Relation to Stream Operators
6.3.2.3
NOW and Last Event Windows
6.3.3
Processor Output Control (Slides)
6.3.4
Views
6.4
CQL Aggregations
6.5
Configure a Table Source
6.5.1
Assembly File
6.5.2
Configuration File
6.6
Configure an Oracle CQL Processor for Parallel Query Execution
6.6.1
Set Up Parallel Query Execution Support
6.6.2
The ordering-constraint Attribute
6.6.3
Using partition-order-capacity with Partitioning Queries
6.6.4
Limitations
6.7
Fault Handling
6.7.1
Implement a Fault Handler Class
6.7.2
Register a Fault Handler
7
Event Beans
7.1
Event Beans and Spring Beans
7.1.1
Threading Behavior
7.1.2
Receive Heartbeat Events
7.1.3
Create an Event Bean
7.1.4
Create a Spring Bean
7.2
Event Sink Interfaces
7.2.1
Implement StreamSink
7.2.2
Implement RelationSink
7.3
Event Source Interfaces
7.3.1
Implement StreamSender
7.3.2
Implement RelationSender
8
Cached Event Data
8.1
Caching Defined
8.1.1
Supported Caching Implementations
8.1.2
Use Cases
8.2
Configure an Oracle Coherence Caching System and Cache
8.2.1
Assembly File
8.2.2
Configuration File
8.2.3
Cache Loader Bean
8.3
Configure a Local Caching System and Cache
8.3.1
Assembly File
8.3.2
Configuration File
8.4
Configure a Cache as an Event Listener
8.5
Index a Cache with a Key
8.5.1
Assembly File
8.5.2
Metadata Annotation
8.5.3
Composite Key
8.6
Configure a Cache as an Event Source
8.7
Configure a Cache with a Cache Listener
8.8
Configure a Third-Party Caching System and Cache
8.9
Exchange Data Between a Cache and Another Data Source
8.9.1
Load Cache Data from a Read-Only Data Source
8.9.2
Exchange Data with a Read-Write Data Source
8.10
Access a Cache from Application Code
8.10.1
Access a Cache from an Oracle CQL Statement
8.10.2
Access a Cache from an Adapter
8.10.3
Access a Cache From a Business POJO
8.10.4
Access a Cache From an Oracle CQL User-Defined Function
8.10.5
Access a Cache with JMX
8.10.5.1
How to Access a Cache With JMX Using Oracle Stream Analytics Visualizer
8.10.5.2
How to Access a Cache With JMX Using Java
9
EclipseLink, JPA, and Oracle Coherence
9.1
High-Level Procedure
9.2
HelloWorld Example
9.2.1
persistence.xml Configuration File
9.2.2
HelloWorldAdapter.java
9.2.3
HelloWorldEvent.java
9.2.4
HelloWorldBean.java
9.3
JPA Coherence Example
9.3.1
persistence.xml Configuration File
9.3.2
Classes
9.3.2.1
CoherenceMapListener.java
9.3.2.2
PriceTarget.java
9.3.2.3
PriceTargetLoader.java
9.3.2.4
SaleEvent.java
9.3.2.5
SaleEventsGenerator.java
10
Web Services
10.1
Supported Platforms
10.2
Invoke a Web Service From an Application
10.3
Expose an Application as a Web Service
11
Parameterized Applications
11.1
Application Parameters
11.2
Object Class Definitions
11.3
Attribute Descriptions
11.4
Targeting
11.5
Example metatype File
11.6
Where You Can Use Parameterized Applications
11.6.1
Document an Application
11.6.2
Channel Configuration
11.6.3
Oracle CQL Processor Query
11.7
Deploy the HelloWorld Application
12
Internationalization
12.1
Message Catalogs
12.1.1
Hierarchy
12.1.2
Naming
12.1.3
Message Arguments
12.1.4
Formats
12.1.5
Message Catalog Localization
12.2
Generate Localization Classes
Part II Deploy, Test, and Debug
13
Assemble and Deploy
13.1
OSGi bundles
13.2
Application Dependencies
13.3
Application Libraries
13.3.1
Library Directory
13.3.2
Library Extensions Directory
13.4
Deployment Order
13.5
Configuration History
13.6
Assemble an OSGi Bundle with appC
13.7
Assemble an OSGi Bundle with bundle.sh
13.7.1
Prepare and Organize the Files
13.7.2
Create the MANIFEST.MF File
13.7.3
Include Third-Party JAR Files
13.7.4
Access Third-Party JAR Files with -Xbootclasspath
13.7.5
Reference Foreign Stages
13.7.6
Assemble an OSGi Bundle that Activates
13.7.6.1
Command Location, Syntax, and Arguments
13.7.6.2
Assemble an OSGi Bundle
13.8
Deploy an OSGi Bundle
14
Testing 1-2-3
14.1
Load Generator and the csvgen Adapter
14.1.1
Create the Properties File
14.1.2
Create the Data Feed File
14.1.3
Configure the csvgen Adapter in Your Application
14.2
Event Inspector Service
14.2.1
Event Types
14.2.2
HTTP Publish-Subscribe Channel and Server
14.2.3
Configure a Local or Remote Server
14.2.4
Inject Events
14.2.5
Trace Events
14.2.6
Event Inspector API
14.3
EPN Shell
14.3.1
Oracle CQL Queries
14.3.2
Management Commands
14.3.3
Regression Testing
14.3.4
EPN Variable
14.3.5
EPN Commands
14.3.6
Management Commands
14.4
EPN Command Interface
14.4.1
Session Variables
14.4.2
Methods
14.4.3
Example
15
Debug with Event Record and Playback
15.1
Event Flow
15.2
Berkeley DB
15.3
Record Events
15.4
Play Back Events
15.5
Configure Berkeley DB
15.6
Configure a Component to Record Events
15.7
Configure a Component to Play Back Events
15.8
Start and Stop the Record and Playback of Events
Part III Tune and Scale
16
Performance Tuning
16.1
Channel and JMS Performance Tuning
16.2
High Availability Performance Tuning
17
High Availability Applications
17.1
Oracle Coherence
17.2
Architecture
17.3
Life Cycle and Failover
17.3.1
Secondary Failure
17.3.2
Primary Failure and Failover
17.3.3
Rejoining the High Availability MultiServer Domain
17.4
Deployment Group and Notification Group
17.5
High Availability Adapters
17.5.1
High Availability Input Adapter
17.5.2
Buffering Output Adapter
17.5.3
Broadcast Output Adapter
17.5.4
Correlating Output Adapter
17.6
High Availability and Scalability
17.7
Choose a Quality of Service Option
17.7.1
Simple Failover
17.7.2
Simple Failover with Buffering
17.7.3
Light-Weight Queue Trimming
17.7.4
Precise Recovery with JMS
17.8
Design Applications for High Availability
17.8.1
Primary High Availability Use Case
17.8.2
High Availability Design Patterns
17.8.2.1
Select the Minimum High Availability Your Application can Tolerate
17.8.2.2
Use High Availability Components at All Ingress and Egress Points
17.8.2.3
Preserve What You Need
17.8.2.4
Limit Oracle Stream Analytics Application State
17.8.2.5
Choose an Adequate warm-up-window-length Time
17.8.2.5.1
Type 1 Applications
17.8.2.5.2
Type 2 Applications
17.8.2.6
Ensure Applications are Idempotent
17.8.2.7
Source Event Identity Externally
17.8.2.8
Understand the Importance of Event Ordering
17.8.2.8.1
Prefer Deterministic Behavior
17.8.2.8.2
Avoid Multithreading
17.8.2.8.3
Prefer Monotonic Event Identifiers
17.8.2.9
Write Oracle CQL Queries with High Availability in Mind
17.8.2.10
Avoid Coupling Servers
17.8.2.11
Plan for Server Recovery
17.8.3
Oracle CQL Query Restrictions
17.8.3.1
Range-Based Windows
17.8.3.2
Tuple-Based Windows
17.8.3.3
Partitioned Windows
17.8.3.4
Sliding Windows
17.8.3.5
DURATION Clause and Non-Event Detection
17.8.3.6
Prefer Application Time
17.9
Configure High Availability Quality of Service
17.9.1
Configure a Simple Failover
17.9.2
Configure Simple Failover With Buffering
17.9.3
Configure Light-Weight Queue Trimming
17.9.4
Configure Precise Recovery With JMS
17.10
Configure High Availability Adapters
17.10.1
Configure the High Availability Input Adapter
17.10.2
Configure the Buffering Output Adapter
17.10.3
Configure the Broadcast Output Adapter
17.10.4
Configure the Correlating Output Adapter
18
Scalable Applications
18.1
Default Channel Scalability Settings
18.1.1
Configure Partitioning on the Channel
18.1.2
Configure Parallel Processing on the Channel
18.1.3
Configure Parallel Processing on the Upstream Adapter
18.1.4
Define a Local Partition Channel
18.2
Partition an Incoming JMS Event Stream
18.2.1
Configure Partitioning without High Availability
18.2.2
Configure Partitioning with High Availability
18.3
Notification Group Naming Conventions
18.4
Custom Channel Event Partitioner
18.4.1
EventPartitioner Interface
18.4.2
Implement the EventPartitioner Interface
Scripting on this page enhances content navigation, but does not change the content in any way.