Bulk Maintenance of Rate Rule Objects

The Engine uses CER to store rule objects for rate table data on CER's database tables. These stored rule objects act as a "mirror" copy of the rate table data in a form that can be accessed during CER calculations.

The CER rule objects may not accurately reflect the latest rate table data for a number of reasons:

1 Shortly after start-up, the system checks the RuleObjectPropagatorControl table and runs initial propagation if it has not already been run. In a development environment, there is typically no discernible effect; however, in a production environment, the higher data volumes can mean that any initial propagation run after start-up (typically during user login) will cause the database transaction to timeout, depending on application server timeout settings.

To avoid this problem, be sure to run build prepare.application.data prior to starting the application.

Initial propagation is controlled by a single control row on the RuleObjectPropagatorControl table, which is populated by the DMX file included by the application. This control row ensures that initial propagation is only run once in an environment where many JVM instances attach to the database (e.g. during repeated runs of JUnit tests in a development environment, or when many application servers are used in a production environment).

The EJBServer/components/core/data/initial/RULEOBJECTPROPAGATORCONTROL.dmx file included by the application is required for the correct behavior of initial propagation, and so this file must not be customized or removed by customers. The control row populated by this DMX file must be reflected in any production database.