As illustrated in the figure on this page, the Berkeley DB object management option persists a snapshot of the working memory for each inference agent (rule session) in the deployed system. The data for each inference agent is persisted to a data store at specified intervals.
A small cache for each inference agent ensures that currently used objects are available in memory for improved performance. You can control the size of the cache (see
Caches Used for Persistence-Based Object Management in
TIBCO BusinessEvents Administration).
The persistence data store uses Berkeley DB and is provided and managed by BusinessEvents.
Persistence-based object management provides data recovery in the case of a complete system failure. When the system comes up after a system failure, BusinessEvents restores the working memory (or memories) to the last checkpoint state. It also receives all of the previously unacknowledged messages.
Data in memory at time of failure and not yet written to disk is lost.
Use of the Berkeley DB option affects performance, due to the disk writes required. BusinessEvents provides parameters — checkpoint interval and property cache size — to help you tune performance. You can also determine how many objects to keep in the data cache, in order to manage JVM memory usage for the application for better performance.
Fault tolerance features for Berkeley DB object management are not provided by BusinessEvents. You can, however, implement a custom fault tolerance solution using TIBCO Rendezvous and TIBCO Hawk or third-party fault-tolerance tools. For example, you could set up two servers that each point to the same persistence data store, and you could write rules in your fault-tolerance tool to detect failure and take appropriate steps (for example, removing any lock files) when failing over to the secondary server.