Object management refers to various ways that TIBCO BusinessEvents can manage the ontology object instances created by TIBCO BusinessEvents.
Cache object management enables rich functionality and is generally chosen for enterprise applications. In Memory object management can also play a useful secondary role in testing, and as an event router.
Using cache clustering technology, object data is kept in memory caches, with redundant storage of each object for reliability and high availability. Cache data is shared across all the engines participating in the cluster. Two cache providers are supported. The built-in cache provider is the TIBCO BusinessEvents DataGrid component. You also have the option to use a licensed version of Oracle Coherence (not provided).
Processing Unit A processing unit deploys as a TIBCO BusinessEvents engine. One engine runs in one JVM.
Agent Each processing unit contains one or more agents of different types. The main types are inference agents, which perform the inferencing work, and cache agents, which manage the objects.
Agent Class An agent class is a configured agent definition. Configuration specifies, for example, what channels, startup rule functions, and rules the agent will use at runtime. You can deploy multiple instances of the same agent class, and you can deploy instances of different agent classes, depending on the work the application is designed to do.
Cache Agent An agent that stores cache data. For demonstration purposes only, you can configure other types of agents, generally inference agents, to store cache data.
Seeders and Leeches (TIBCO BusinessEvents DataGrid terms) A
seeder is an agent that stores cache data. Cache agents are seeders by default. A
leech is an agent that is part of the cluster but does not store data. Agents other than cache agents are generally leeches. These terms are not generally used in the documentation. However they may be useful to know about for technical discussions.
Data recovery after total system failure is available if you implement a persistent backing store. Recovery from failure of individual processing units (JVMs) is available with Cache OM without a backing store.
Fault tolerance is provided at the inference agent level. Agents belonging to the same agent class can act in a traditional fault-tolerant manner, where standby agents take over for failed active agents. Fault tolerance can also be provided implicitly, because all active agents in the same class share the workload. There may be no need to keep any agents as standbys. It depends on your needs.
Cache-based object management is generally the best choice for CEP systems. It offers richer functionality, and is the method that receives most focus in these chapters.
In Memory object management does not persist object instances. They are maintained in local JVM memory only. Objects are managed by standard JVM features. This is the only section on In Memory manager, because of its simplicity.
In Memory OM does not provide data recovery in case of system failure. The working memory on each system is not synchronized. Object state is not maintained. At startup after a failure, object state is initialized to the application’s starting state.
The In Memory option is a good choice for development and testing environments. In production environments, the In Memory option is best used for stateless operations and transient objects. An independently deployed In Memory application can act as an event router, directing events to agents in a cache cluster for processing.
Object data is periodically written to a data store on disk. Each agent has its own data store. This option enables recovery of objects from the persisted state, but does not support built-in fault tolerance mechanisms. Custom means can be used to provide fault tolerance.
(Not available in TIBCO BusinessEvents Express edition.) You can use In Memory object management in early phases of development. In later phases, you can implement Cache OM and take advantage of features it makes possible.
Perform tests after changing object management type As with any change in configuration, be sure to perform thorough testing before going into production.