Object management refers to various ways that BusinessEvents can manage the state of ontology object instances created by each Rete network (inference agent).Fault tolerance refers to high availability of the BusinessEvents engine (or agent) process. The fault tolerance features available depend on which object management option you choose.By reading the topics in this chapter, you will be able to decide which object management option is best for your needs.As mentioned in Runtime Architecture and Flow, BusinessEvents has three layers of functionality:This section presents the options for lifecycle management of objects and events, known as object management (OM).Figure 14 Three Main Options for Object ManagementThe goal of object management is to manage the state of concepts, state machines, simple events and time events that are created and used by each Rete network. Specific aspects of that goal are as follows:
● Object Persistence Enables objects to be available for reuse, either in memory caches or in databases.
● Data Recovery Ability to survive failures without loss of data.
● Object Partitioning The ability to partition the objects among multiple JVMs. and to handle notifications of object additions, deletions, and changes to all the agents, enabling them to remain synchronized
● Object Clustering The ability to maintain multiple copies of each object in different nodes such that if one node fails, another node can take over (backup-count).Additionally, the choice of object management options affects the fault tolerance options available.In Memory Fault tolerance is provided at the engine level. Configuration uses various engine properties to define primary and secondary engines. See Configuring Fault Tolerance for In Memory OM Systems.Persistence Fault tolerance requires a custom solution, not documented in this guide.Cache Fault tolerance is provided at the inference agent level. With multi-engine features enabled, fault tolerance and load balancing are provided by the same set of features. See Load Balancing and Fault Tolerance Between Inference Agents for more details.
Message Acknowledgment See Message Acknowledgment Timing for Each Object Management Type for information on the way each object management option handles message acknowledgment.Objects are managed in memory by standard JVM features. This basic option does not provide data recovery in case of system failure. The working memory on each system is not synchronized. However, fault tolerance of the engine process is available.The default option for object management, In Memory object management is useful for agents that use only transient objects, such as objects created at startup. It is also useful for test or demonstration purposes.Fault tolerance and other object management topics relating to In Memory OM are documented in Chapter 15, Configuring In Memory Object Management.
Object data is periodically written to a data store on disk. Each agent (BAR) 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.See Chapter 16, Configuring Persistence Object Management for more details.Using cache clustering technology, object data is kept in memory caches, with redundant storage of each object for reliability and high availability. Within a cache cluster, nodes deployed as cache servers manage the data and handle recovery. Cache data is shared by all agents in the cluster.Recovery from total failure is available if you implement a persistent backing store. Recovery from failure of individual nodes is available without a backing store. Optional advanced cache management features (cache modes) provide fine-grained controls for managing the memory footprint.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.
Cache-Related Features Cache-based object management enables product functionality in addition to object management, specifically features for querying the cache (Enterprise Suite only), and concurrent active engine features for scaling, fault tolerance and load balancing.The following table illustrates which of the object management and fault tolerance features are supported for each object management option (see Summary of Object Management Options).
Data Recovery Fault Tolerance Yes (at node level) Yes (snapshot) Yes (at agent level)You configure object management options separately for each agent, that is, for each BAR resource in a TIBCO Designer project. Depending on your application logic and data requirements, you can configure In Memory OM and Persistence, or In Memory and Cache OM in one deployment.For example, inference agent A acts as an event router. It takes all incoming events and directs them to agents B or C as appropriate. Agent A uses In Memory object management, because it does not generate any ontology object instances, and agents B and C use Cache OM to manage the ontology objects.You can use In Memory object management in early development phases of a project, and move to the option that will be used in production later.After a project goes into production, you can move from In Memory to Persistence or Cache. You can also migrate a production system from Persistence to Cache. See TIBCO BusinessEvents Installation, Chapter 7, Migrating Persistence Data to Backing Store.
Copyright © TIBCO Software Inc. All Rights Reserved.