Esper - Event Stream and Complex Event Processing for Java

Reference Documentation

4.4.0


Table of Contents

Preface
1. Technology Overview
1.1. Introduction to CEP and event stream analysis
1.2. CEP and relational databases
1.3. The Esper engine for CEP
1.4. Required 3rd Party Libraries
2. Event Representations
2.1. Event Underlying Java Objects
2.2. Event Properties
2.2.1. Escape Characters
2.3. Dynamic Event Properties
2.4. Fragment and Fragment Type
2.5. Plain-Old Java Object Events
2.5.1. Java Object Event Properties
2.5.2. Property Names
2.5.3. Constants and Enumeration
2.5.4. Parameterized Types
2.5.5. Known Limitations
2.6. java.util.Map Events
2.6.1. Overview
2.6.2. Map Properties
2.6.3. Map Supertypes
2.6.4. Advanced Map Property Types
2.6.4.1. Nested Properties
2.6.4.2. Map Event Type Properties
2.6.4.3. One-to-Many Relationships
2.7. org.w3c.dom.Node XML Events
2.7.1. Schema-Provided XML Events
2.7.1.1. Getting Started
2.7.1.2. Property Expressions and Namespaces
2.7.1.3. Property Expression to XPath Rewrite
2.7.1.4. Array Properties
2.7.1.5. Dynamic Properties
2.7.1.6. Transposing Properties
2.7.1.7. Event Sender
2.7.1.8. Limitations
2.7.2. No-Schema-Provided XML Events
2.7.3. Explicitly-Configured Properties
2.7.3.1. Simple Explicit Property
2.7.3.2. Explicit Property Casting and Parsing
2.7.3.3. Node and Nodeset Explicit Property
2.8. Additional Event Representations
2.9. Updating, Merging and Versioning Events
2.10. Coarse-Grained Events
2.11. Event Objects Instantiated and Populated by Insert Into
2.12. Comparing Event Types
3. Processing Model
3.1. Introduction
3.2. Insert Stream
3.3. Insert and Remove Stream
3.4. Filters and Where-clauses
3.5. Time Windows
3.5.1. Time Window
3.5.2. Time Batch
3.6. Batch Windows
3.7. Aggregation and Grouping
3.7.1. Insert and Remove Stream
3.7.2. Output for Aggregation and Group-By
3.7.2.1. Un-aggregated and Un-grouped
3.7.2.2. Fully Aggregated and Un-grouped
3.7.2.3. Aggregated and Un-Grouped
3.7.2.4. Fully Aggregated and Grouped
3.7.2.5. Aggregated and Grouped
3.8. Event Visibility and Current Time
4. Context and Context Partitions
4.1. Introduction
4.2. Context Declaration
4.2.1. Keyed Segmented Context
4.2.1.1. Multiple Stream Definitions
4.2.1.2. Filters
4.2.1.3. Multiple Properties Per Event Type
4.2.1.4. Built-In Context Properties
4.2.1.5. Examples of Joins
4.2.2. Category Segmented Context
4.2.2.1. Built-In Context Properties
4.2.3. Fixed Temporal Context
4.2.3.1. Built-In Context Properties
4.2.4. Initiated Temporal Context
4.2.4.1. Built-In Context Properties
4.3. Partitioning Without Context Declaration
4.4. Output When Context Partition Ends
4.5. Context and Named Window
5. EPL Reference: Clauses
5.1. EPL Introduction
5.2. EPL Syntax
5.2.1. Specifying Time Periods
5.2.2. Using Comments
5.2.3. Reserved Keywords
5.2.4. Escaping Strings
5.2.5. Data Types
5.2.5.1. Data Type of Constants
5.2.5.2. BigInteger and BigDecimal
5.2.6. Annotation
5.2.6.1. Application-Provided Annotations
5.2.6.2. Built-In Annotations
5.2.6.3. @Name
5.2.6.4. @Description
5.2.6.5. @Tag
5.2.6.6. @Priority
5.2.6.7. @Drop
5.2.6.8. @Hint
5.2.6.9. @Hook
5.2.6.10. @Audit
5.2.7. Expression Declaration
5.2.8. Referring to a Context
5.3. Choosing Event Properties And Events: the Select Clause
5.3.1. Choosing all event properties: select *
5.3.2. Choosing specific event properties
5.3.3. Expressions
5.3.4. Renaming event properties
5.3.5. Choosing event properties and events in a join
5.3.6. Choosing event properties and events from a pattern
5.3.7. Selecting insert and remove stream events
5.3.8. Qualifying property names and stream names
5.3.9. Select Distinct
5.3.10. Transposing an Expression Result to a Stream
5.4. Specifying Event Streams: the From Clause
5.4.1. Filter-based Event Streams
5.4.1.1. Specifying an Event Type
5.4.1.2. Specifying Filter Criteria
5.4.1.3. Filtering Ranges
5.4.1.4. Filtering Sets of Values
5.4.1.5. Filter Limitations
5.4.2. Pattern-based Event Streams
5.4.3. Specifying Views
5.4.4. Multiple Data Window Views
5.4.5. Using the Stream Name
5.5. Specifying Search Conditions: the Where Clause
5.6. Aggregates and grouping: the Group-by Clause and the Having Clause
5.6.1. Using aggregate functions
5.6.2. Organizing statement results into groups: the Group-by clause
5.6.3. Selecting groups of events: the Having clause
5.6.4. How the stream filter, Where, Group By and Having clauses interact
5.6.5. Comparing Keyed Segmented Context, the Group By clause and the std:groupwin view
5.7. Stabilizing and Controlling Output: the Output Clause
5.7.1. Output Clause Options
5.7.1.1. Controlling Output Using an Expression
5.7.1.2. Suppressing Output With After
5.7.2. Aggregation, Group By, Having and Output clause interaction
5.7.3. Runtime Considerations
5.8. Sorting Output: the Order By Clause
5.9. Limiting Row Count: the Limit Clause
5.10. Merging Streams and Continuous Insertion: the Insert Into Clause
5.10.1. Transposing a Property To a Stream
5.10.2. Merging Streams By Event Type
5.10.3. Merging Disparate Types of Events: Variant Streams
5.10.4. Decorated Events
5.10.5. Event as a Property
5.10.6. Instantiating and Populating an Underlying Event Object
5.10.7. Transposing an Expression Result
5.11. Subqueries
5.11.1. The 'exists' Keyword
5.11.2. The 'in' and 'not in' Keywords
5.11.3. The 'any' and 'some' Keywords
5.11.4. The 'all' Keyword
5.11.5. Multi-Column Selection
5.11.6. Multi-Row Selection
5.11.7. Hints Related to Subqueries
5.12. Joining Event Streams
5.12.1. Introducing Joins
5.12.2. Inner (Default) Joins
5.12.3. Outer, Left and Right Joins
5.12.4. Unidirectional Joins
5.12.5. Hints Related to Joins
5.13. Accessing Relational Data via SQL
5.13.1. Joining SQL Query Results
5.13.2. SQL Query and the EPL Where Clause
5.13.3. Outer Joins With SQL Queries
5.13.4. Using Patterns to Request (Poll) Data
5.13.5. Polling SQL Queries via Iterator
5.13.6. JDBC Implementation Overview
5.13.7. Oracle Drivers and No-Metadata Workaround
5.13.8. SQL Input Parameter and Column Output Conversion
5.13.9. SQL Row POJO Conversion
5.14. Accessing Non-Relational Data via Method Invocation
5.14.1. Joining Method Invocation Results
5.14.2. Polling Method Invocation Results via Iterator
5.14.3. Providing the Method
5.14.4. Using a Map Return Type
5.15. Creating and Using Named Windows
5.15.1. Creating Named Windows: the Create Window clause
5.15.1.1. Creation by Modelling after an Existing Type
5.15.1.2. Creation By Defining Columns Names and Types
5.15.1.3. Dropping or Removing Named Windows
5.15.2. Inserting Into Named Windows
5.15.2.1. Named Windows Holding Decorated Events
5.15.2.2. Named Windows Holding Events As Property
5.15.3. Selecting From Named Windows
5.15.4. Triggered Select on Named Windows: the On Select clause
5.15.5. Triggered Playback from Named Windows: the On Insert clause
5.15.6. Populating a Named Window from an Existing Named Window
5.15.7. Updating Named Windows: the On Update clause
5.15.8. Deleting From Named Windows: the On Delete clause
5.15.8.1. Using Patterns in the On Delete Clause
5.15.9. Triggered Upsert using the On-Merge Clause
5.15.10. Explicitly Indexing Named Windows
5.15.11. Versioning and Revision Event Type Use with Named Windows
5.16. Declaring an Event Type: Create Schema
5.16.1. Declare an Event Type by Providing Names and Types
5.16.2. Declare an Event Type by Providing a Class Name
5.16.3. Declare a Variant Stream
5.17. Splitting and Duplicating Streams
5.18. Variables
5.18.1. Creating Variables: the Create Variable clause
5.18.2. Setting Variable Values: the On Set clause
5.18.3. Using Variables
5.18.4. Object-Type Variables
5.18.5. Class and Event-Type Variables
5.19. Contained-Event Selection
5.19.1. Select Clause in a Contained-Event Selection
5.19.2. Where Clause in a Contained-Event Selection
5.19.3. Contained-Event Selection and Joins
5.20. Updating an Insert Stream: the Update IStream Clause
5.20.1. Immutability and Updates
5.21. Controlling Event Delivery : The For Clause
6. EPL Reference: Patterns
6.1. Event Pattern Overview
6.2. How to use Patterns
6.2.1. Pattern Syntax
6.2.2. Patterns in EPL
6.2.3. Subscribing to Pattern Events
6.2.4. Pulling Data from Patterns
6.2.5. Pattern Error Reporting
6.3. Operator Precedence
6.4. Filter Expressions In Patterns
6.4.1. Controlling Event Consumption
6.5. Pattern Operators
6.5.1. Every
6.5.1.1. Limiting Subexpression Lifetime
6.5.1.2. Every Operator Example
6.5.1.3. Sensor Example
6.5.2. Every-Distinct
6.5.3. Repeat
6.5.4. Repeat-Until
6.5.4.1. Unbound Repeat
6.5.4.2. Bound Repeat Overview
6.5.4.3. Bound Repeat - Open Ended Range
6.5.4.4. Bound Repeat - High Endpoint Range
6.5.4.5. Bound Repeat - Bounded Range
6.5.4.6. Tags and the Repeat Operator
6.5.5. And
6.5.6. Or
6.5.7. Not
6.5.8. Followed-by
6.5.8.1. Limiting Sub-Expression Count
6.5.8.2. Limiting Engine-wide Sub-Expression Count
6.5.9. Pattern Guards
6.5.9.1. The timer:within Pattern Guard
6.5.9.2. The timer:withinmax Pattern Guard
6.5.9.3. The while Pattern Guard
6.5.9.4. Guard Time Interval Expressions
6.5.9.5. Combining Guard Expressions
6.6. Pattern Atoms
6.6.1. Filter Atoms
6.6.2. Time-based Observer Atoms
6.6.2.1. timer:interval
6.6.2.2. timer:at
7. EPL Reference: Match Recognize
7.1. Overview
7.2. Comparison of Match Recognize and EPL Patterns
7.3. Syntax
7.3.1. Syntax Example
7.4. Pattern and Pattern Operators
7.4.1. Operator Precedence
7.4.2. Concatenation
7.4.3. Alternation
7.4.4. Quantifiers Overview
7.4.5. Variables Can be Singleton or Group
7.4.5.1. Additional Aggregation Functions
7.4.6. Eliminating Duplicate Matches
7.4.7. Greedy Or Reluctant
7.4.8. Quantifier - One Or More (+ and +?)
7.4.9. Quantifier - Zero Or More (* and *?)
7.4.10. Quantifier - Zero Or One (? and ??)
7.5. Define Clause
7.5.1. The Prev Operator
7.6. Measure Clause
7.7. Datawindow-Bound
7.8. Interval
7.9. Use with Different Event Types
7.10. Limitations
8. EPL Reference: Operators
8.1. Arithmetic Operators
8.2. Logical And Comparison Operators
8.2.1. Null-Value Comparison Operators
8.3. Concatenation Operators
8.4. Binary Operators
8.5. Array Definition Operator
8.6. Dot Operator
8.6.1. Duck Typing
8.7. The 'in' Keyword
8.7.1. 'in' for Range Selection
8.8. The 'between' Keyword
8.9. The 'like' Keyword
8.10. The 'regexp' Keyword
8.11. The 'any' and 'some' Keywords
8.12. The 'all' Keyword
8.13. The 'new' Keyword
9. EPL Reference: Functions
9.1. Single-row Function Reference
9.1.1. The Case Control Flow Function
9.1.2. The Cast Function
9.1.3. The Coalesce Function
9.1.4. The Current_Timestamp Function
9.1.5. The Exists Function
9.1.6. The Instance-Of Function
9.1.7. The Min and Max Functions
9.1.8. The Previous Function
9.1.8.1. Restrictions
9.1.8.2. Comparison to the prior Function
9.1.9. The Previous-Tail Function
9.1.9.1. Restrictions
9.1.10. The Previous-Window Function
9.1.10.1. Restrictions
9.1.11. The Previous-Count Function
9.1.11.1. Restrictions
9.1.12. The Prior Function
9.1.13. The Type-Of Function
9.2. Aggregate Functions
9.2.1. SQL-Standard Functions
9.2.2. Data Window Aggregation Functions
9.2.2.1. First Aggregation Function
9.2.2.2. Last Aggregation Function
9.2.2.3. Window Aggregation Function
9.2.3. Additional Aggregation Functions
9.3. User-Defined Functions
9.4. Select-Clause transpose Function
9.4.1. Transpose with Insert-Into
10. EPL Reference: Enumeration Methods
10.1. Overview
10.2. Example Events
10.3. How to Use
10.3.1. Syntax
10.3.2. Introductory Examples
10.3.3. Input, Output and Limitations
10.4. Inputs
10.4.1. Subquery Results
10.4.2. Named Window
10.4.3. Event Property
10.4.4. Data Window Aggregation
10.4.5. prev, prevwindow and prevtail Single-Row Functions as Input
10.4.6. Single-Row Function or UDF
10.4.7. Declared Expression
10.5. Example
10.6. Reference
10.6.1. Aggregate
10.6.2. AllOf
10.6.3. AnyOf
10.6.4. Average
10.6.5. CountOf
10.6.6. Except
10.6.7. FirstOf
10.6.8. GroupBy
10.6.9. Intersect
10.6.10. LastOf
10.6.11. LeastFrequent
10.6.12. Max
10.6.13. MaxBy
10.6.14. Min
10.6.15. MinBy
10.6.16. MostFrequent
10.6.17. OrderBy and OrderByDesc
10.6.18. Reverse
10.6.19. SelectFrom
10.6.20. SequenceEqual
10.6.21. SumOf
10.6.22. Take
10.6.23. TakeLast
10.6.24. TakeWhile
10.6.25. TakeWhileLast
10.6.26. ToMap
10.6.27. Union
10.6.28. Where
11. EPL Reference: Date-Time Methods
11.1. Overview
11.2. How to Use
11.2.1. Syntax
11.3. Calendar and Formatting Reference
11.3.1. Between
11.3.2. Format
11.3.3. Get (By Field)
11.3.4. Get (By Name)
11.3.5. Minus
11.3.6. Plus
11.3.7. RoundCeiling
11.3.8. RoundFloor
11.3.9. RoundHalf
11.3.10. Set (By Field)
11.3.11. WithDate
11.3.12. WithMax
11.3.13. WithMin
11.3.14. WithTime
11.3.15. ToCalendar
11.3.16. ToDate
11.3.17. ToMillisec
11.4. Interval Algebra Reference
11.4.1. After
11.4.2. Before
11.4.3. Coincides
11.4.4. During
11.4.5. Finishes
11.4.6. Finished By
11.4.7. Includes
11.4.8. Meets
11.4.9. Met By
11.4.10. Overlaps
11.4.11. Overlapped By
11.4.12. Starts
11.4.13. Started By
12. EPL Reference: Views
12.1. Window views
12.1.1. Length window (win:length)
12.1.2. Length batch window (win:length_batch)
12.1.3. Time window (win:time)
12.1.4. Externally-timed window (win:ext_timed)
12.1.5. Time batch window (win:time_batch)
12.1.6. Time-Length combination batch window (win:time_length_batch)
12.1.7. Time-Accumulating window (win:time_accum)
12.1.8. Keep-All window (win:keepall)
12.1.9. First Length (win:firstlength)
12.1.10. First Time (win:firsttime)
12.1.11. Expiry Expression (win:expr)
12.2. Standard view set
12.2.1. Unique (std:unique)
12.2.2. Grouped Data Window (std:groupwin)
12.2.3. Size (std:size)
12.2.4. Last Event (std:lastevent)
12.2.5. First Event (std:firstevent)
12.2.6. First Unique (std:firstunique)
12.3. Statistics views
12.3.1. Univariate statistics (stat:uni)
12.3.2. Regression (stat:linest)
12.3.3. Correlation (stat:correl)
12.3.4. Weighted average (stat:weighted_avg)
12.4. Extension View Set
12.4.1. Sorted Window View (ext:sort)
12.4.2. Time-Order View (ext:time_order)
13. API Reference
13.1. API Overview
13.2. The Service Provider Interface
13.3. The Administrative Interface
13.3.1. Creating Statements
13.3.2. Receiving Statement Results
13.3.3. Setting a Subscriber Object
13.3.3.1. Row-By-Row Delivery
13.3.3.2. Multi-Row Delivery
13.3.3.3. No-Parameter Update Method
13.3.4. Adding Listeners
13.3.4.1. Subscription Snapshot and Atomic Delivery
13.3.5. Using Iterators
13.3.6. Managing Statements
13.3.7. Runtime Configuration
13.4. The Runtime Interface
13.4.1. Event Sender
13.4.2. Receiving Unmatched Events
13.4.3. On-Demand Snapshot Query Execution
13.4.3.1. On-Demand Query API
13.5. Event and Event Type
13.5.1. Event Type Metadata
13.5.2. Event Object
13.5.3. Query Example
13.5.4. Pattern Example
13.6. Engine Threading and Concurrency
13.6.1. Advanced Threading
13.6.1.1. Inbound Threading
13.6.1.2. Outbound Threading
13.6.1.3. Timer Execution Threading
13.6.1.4. Route Execution Threading
13.6.1.5. Threading Service Provider Interface
13.6.2. Processing Order
13.6.2.1. Competing Statements
13.6.2.2. Competing Events in a Work Queue
13.7. Controlling Time-Keeping
13.7.1. Controlling Time Using Time Span Events
13.7.2. Additional Time-Related APIs
13.8. Time Resolution
13.9. Service Isolation
13.9.1. Overview
13.9.2. Example: Suspending a Statement
13.9.3. Example: Catching up a Statement from Historical Data
13.9.4. Isolation for Insert-Into
13.9.5. Isolation for Named Windows
13.9.6. Runtime Considerations
13.10. Exception Handling
13.11. Condition Handling
13.12. Statement Object Model
13.12.1. Building an Object Model
13.12.2. Building Expressions
13.12.3. Building a Pattern Statement
13.12.4. Building a Select Statement
13.12.5. Building a Create-Variable and On-Set Statement
13.12.6. Building Create-Window, On-Delete and On-Select Statements
13.13. Prepared Statement and Substitution Parameters
13.14. Engine and Statement Metrics Reporting
13.14.1. Engine Metrics
13.14.2. Statement Metrics
13.15. Event Rendering to XML and JSON
13.15.1. JSON Event Rendering Conventions and Options
13.15.2. XML Event Rendering Conventions and Options
13.16. Plug-in Loader
13.17. Interrogating EPL Annotations
14. Configuration
14.1. Programmatic Configuration
14.2. Configuration via XML File
14.3. XML Configuration File
14.4. Configuration Items
14.4.1. Events represented by Java Classes
14.4.1.1. Package of Java Event Classes
14.4.1.2. Event type name to Java class mapping
14.4.1.3. Non-JavaBean and Legacy Java Event Classes
14.4.1.4. Specifying Event Properties for Java Classes
14.4.1.5. Turning off Code Generation
14.4.1.6. Case Sensitivity and Property Names
14.4.1.7. Factory and Copy Method
14.4.1.8. Start and End Timestamp
14.4.2. Events represented by java.util.Map
14.4.3. Events represented by org.w3c.dom.Node
14.4.3.1. Schema Resource
14.4.3.2. Explicit XPath Property
14.4.3.3. Absolute or Deep Property Resolution
14.4.3.4. XPath Variable and Function Resolver
14.4.3.5. Auto Fragment
14.4.3.6. XPath Property Expression
14.4.3.7. Event Sender Setting
14.4.3.8. Start and End Timestamp
14.4.4. Events represented by Plug-in Event Representations
14.4.4.1. Enabling an Custom Event Representation
14.4.4.2. Adding Plug-in Event Types
14.4.4.3. Setting Resolution URIs
14.4.5. Class and package imports
14.4.6. Cache Settings for From-Clause Method Invocations
14.4.7. Variables
14.4.8. Relational Database Access
14.4.8.1. Connections obtained via DataSource
14.4.8.2. Connections obtained via DataSource Factory
14.4.8.3. Connections obtained via DriverManager
14.4.8.4. Connections-level settings
14.4.8.5. Connections lifecycle settings
14.4.8.6. Cache settings
14.4.8.7. Column Change Case
14.4.8.8. SQL Types Mapping
14.4.8.9. Metadata Origin
14.4.9. Engine Settings related to Concurrency and Threading
14.4.9.1. Preserving the order of events delivered to listeners
14.4.9.2. Preserving the order of events for insert-into streams
14.4.9.3. Internal Timer Settings
14.4.9.4. Advanced Threading Options
14.4.9.5. Engine Fair Locking
14.4.10. Engine Settings related to Event Metadata
14.4.10.1. Java Class Property Names, Case Sensitivity and Accessor Style
14.4.11. Engine Settings related to View Resources
14.4.11.1. Sharing View Resources between Statements
14.4.11.2. Configuring Multi-Expiry Policy Defaults
14.4.12. Engine Settings related to Logging
14.4.12.1. Execution Path Debug Logging
14.4.12.2. Query Plan Logging
14.4.12.3. JDBC Logging
14.4.13. Engine Settings related to Variables
14.4.13.1. Variable Version Release Interval
14.4.14. Engine Settings related to Patterns
14.4.14.1. Followed-By Operator Maximum Subexpression Count
14.4.15. Engine Settings related to Stream Selection
14.4.15.1. Default Statement Stream Selection
14.4.16. Engine Settings related to Time Source
14.4.16.1. Default Time Source
14.4.17. Engine Settings related to Metrics Reporting
14.4.18. Engine Settings related to Language and Locale
14.4.19. Engine Settings related to Expression Evaluation
14.4.19.1. Integer Division and Division by Zero
14.4.19.2. Subselect Evaluation Order
14.4.19.3. User-Defined Function or Static Method Cache
14.4.19.4. Extended Built-in Aggregation Functions
14.4.19.5. Duck Typing
14.4.20. Engine Settings related to Execution of Statements
14.4.20.1. Prioritized Execution
14.4.20.2. Context Partition Fair Locking
14.4.20.3. Disable Locking
14.4.20.4. Threading Profile
14.4.21. Engine Settings related to Exception Handling
14.4.22. Engine Settings related to Condition Handling
14.4.23. Revision Event Type
14.4.24. Variant Stream
14.5. Type Names
14.6. Runtime Configuration
14.7. Logging Configuration
14.7.1. Log4j Logging Configuration
15. Development Lifecycle
15.1. Authoring
15.2. Testing
15.3. Debugging
15.3.1. @Audit Annotation
15.4. Packaging and Deploying Overview
15.5. EPL Modules
15.6. The Deployment Administrative Interface
15.6.1. Reading Module Content
15.6.2. Ordering Multiple Modules
15.6.3. Deploying and Undeploying
15.6.4. Listing Deployments
15.6.5. State Transitioning a Module
15.6.6. Best Practices
15.7. J2EE Packaging and Deployment
15.7.1. J2EE Deployment Considerations
15.7.2. Servlet Context Listener
16. Integration and Extension
16.1. Overview
16.2. Virtual Data Window
16.2.1. How to Use
16.2.1.1. Query Access Path
16.2.2. Implementing the Factory
16.2.3. Implementing the Virtual Data Window
16.2.4. Implementing the Lookup
16.3. Single-Row Function
16.3.1. Implementing a Single-Row Function
16.3.2. Configuring the Single-Row Function Name
16.3.3. Value Cache
16.4. Derived-value and Data Window View
16.4.1. Implementing a View Factory
16.4.2. Implementing a View
16.4.3. View Contract
16.4.4. Configuring View Namespace and Name
16.4.5. Requirement for Data Window Views
16.4.6. Requirement for Grouped Views
16.5. Aggregation Function
16.5.1. Implementing an Aggregation Function
16.5.2. Configuring the Aggregation Function Name
16.5.3. Accepting Multiple Parameters
16.6. Pattern Guard
16.6.1. Implementing a Guard Factory
16.6.2. Implementing a Guard Class
16.6.3. Configuring Guard Namespace and Name
16.7. Pattern Observer
16.7.1. Implementing an Observer Factory
16.7.2. Implementing an Observer Class
16.7.3. Configuring Observer Namespace and Name
16.8. Event Type And Event Object
16.8.1. How It Works
16.8.2. Steps
16.8.3. URI-based Resolution
16.8.4. Example
16.8.4.1. Sample Event Type
16.8.4.2. Sample Event Bean
16.8.4.3. Sample Event Representation
16.8.4.4. Sample Event Bean Factory
17. Examples, Tutorials, Case Studies
17.1. Examples Overview
17.2. Running the Examples
17.3. AutoID RFID Reader
17.4. Runtime Configuration
17.5. JMS Server Shell and Client
17.5.1. Overview
17.5.2. JMS Messages as Events
17.5.3. JMX for Remote Dynamic Statement Management
17.6. Market Data Feed Monitor
17.6.1. Input Events
17.6.2. Computing Rates Per Feed
17.6.3. Detecting a Fall-off
17.6.4. Event generator
17.7. OHLC Plug-in View
17.8. Transaction 3-Event Challenge
17.8.1. The Events
17.8.2. Combined event
17.8.3. Real time summary data
17.8.4. Find problems
17.8.5. Event generator
17.9. Self-Service Terminal
17.9.1. Events
17.9.2. Detecting Customer Check-in Issues
17.9.3. Absence of Status Events
17.9.4. Activity Summary Data
17.9.5. Sample Application for J2EE Application Server
17.9.5.1. Running the Example
17.9.5.2. Building the Example
17.9.5.3. Running the Event Simulator and Receiver
17.10. Assets Moving Across Zones - An RFID Example
17.11. StockTicker
17.12. MatchMaker
17.13. Named Window Query
17.14. Sample Virtual Data Window
17.15. Quality of Service
17.16. Trivia Geeks Club
18. Performance
18.1. Performance Results
18.2. Performance Tips
18.2.1. Understand how to tune your Java virtual machine
18.2.2. Compare Esper to other solutions
18.2.3. Input and Output Bottlenecks
18.2.4. Advanced Theading
18.2.5. Select the underlying event rather than individual fields
18.2.6. Prefer stream-level filtering over post-data-window filtering
18.2.7. Reduce the use of arithmetic in expressions
18.2.8. Remove Unneccessary Constructs
18.2.9. End Pattern Sub-Expressions
18.2.10. Consider using EventPropertyGetter for fast access to event properties
18.2.11. Consider casting the underlying event
18.2.12. Turn off logging and audit
18.2.13. Disable view sharing
18.2.14. Tune or disable delivery order guarantees
18.2.15. Use a Subscriber Object to Receive Events
18.2.16. High-Arrival-Rate Streams and Single Statements
18.2.17. Joins And Where-clause And Data Windows
18.2.18. Patterns and Pattern Sub-Expression Instances
18.2.19. The Keep-All Data Window
18.2.20. Statement Design for Reduced Memory Consumption
18.2.21. Performance, JVM, OS and hardware
18.2.22. Consider using Hints
18.2.23. Optimizing Stream Filter Expressions
18.2.24. Statement and Engine Metric Reporting
18.2.25. Expression Evaluation Order and Early Exit
18.2.26. Large Number of Threads
18.2.27. Context Partition Related Information
18.3. Using the performance kit
18.3.1. How to use the performance kit
18.3.2. How we use the performance kit
19. References
19.1. Reference List
A. Output Reference and Samples
A.1. Introduction and Sample Data
A.2. Output for Un-aggregated and Un-grouped Queries
A.2.1. No Output Rate Limiting
A.2.2. Output Rate Limiting - Default
A.2.3. Output Rate Limiting - Last
A.2.4. Output Rate Limiting - First
A.2.5. Output Rate Limiting - Snapshot
A.3. Output for Fully-aggregated and Un-grouped Queries
A.3.1. No Output Rate Limiting
A.3.2. Output Rate Limiting - Default
A.3.3. Output Rate Limiting - Last
A.3.4. Output Rate Limiting - First
A.3.5. Output Rate Limiting - Snapshot
A.4. Output for Aggregated and Un-grouped Queries
A.4.1. No Output Rate Limiting
A.4.2. Output Rate Limiting - Default
A.4.3. Output Rate Limiting - Last
A.4.4. Output Rate Limiting - First
A.4.5. Output Rate Limiting - Snapshot
A.5. Output for Fully-aggregated and Grouped Queries
A.5.1. No Output Rate Limiting
A.5.2. Output Rate Limiting - Default
A.5.3. Output Rate Limiting - All
A.5.4. Output Rate Limiting - Last
A.5.5. Output Rate Limiting - First
A.5.6. Output Rate Limiting - Snapshot
A.6. Output for Aggregated and Grouped Queries
A.6.1. No Output Rate Limiting
A.6.2. Output Rate Limiting - Default
A.6.3. Output Rate Limiting - All
A.6.4. Output Rate Limiting - Last
A.6.5. Output Rate Limiting - First
A.6.6. Output Rate Limiting - Snapshot
B. Reserved Keywords
Index

© 2011 EsperTech Inc. All Rights Reserved