Memory Considerations

Engine parameters

Max jobs

If the number of process instances in memory have reached the value of Max Jobs, then the process instances created are temporarily held on a disk. These process instances are moved back into memory when sufficient memory is available.

Flow limit

When the job processing starts lagging, the memory allocated to the job pool is utilized by the new jobs created and can exhaust the job pool. The FlowLimit property can be set to specify the number of jobs that can reside in the job pool.

Once the job pool is full, the job creator is suspended and is in a FLOW_CONTROLLED state. The job creator comes out of the FLOW_CONTROLLED state after approximately half the value specified for FlowLimit jobs are executed to completion.

Activation limit

Activation Limit can be set if a job that is blocked should remain in memory till completion. Setting the ActivationLimit affects the engine performance substantially.

JVM parameters

Every ActiveMatrix BusinessWorks engine runs in a Java Virtual Machine. As a result, the settings on the JVM influence the engine performance. Java provides some parameters to tune the memory usage and optimize engine performance.

Heap size

Following parameters are used to set the heap size for the engine:

-Xms: Minimum amount of memory used

-Xmx: Maximum amount of memory used

ActiveMatrix BusinessWorks 5.2.0 and higher versions may see an increase in memory footprint and a potential memory sizing issue. This is because ActiveMatrix BusinessWorks 5.2.0 and above point to server JVM, while versions older than ActiveMatrix BusinessWorks 5.2.0 point to client JVM in the bwengine.tra file. While sizing and tuning your environment, consider the following:

  • The total memory used by the JVM (memory footprint) is dependent on the type of JVM used (Server JVM or Client JVM), the JVM version, and the JVM vendor.

  • A Server JVM occupies a higher memory footprint and may result in higher performance when compared to a Client JVM.

  • A Client JVM may have a lower startup time and memory footprint.

For more information about tuning the JVM to suit your application, refer to the JVM Tuning Guide of the JVM used in your environment. You may also consult your JVM vendor for details about the exact memory footprint and heap management in the JVM version used in your environment.

Garbage collection

The java object, such as a job, occupies memory from the time it is created to the time it is destroyed. Java provides garbage collection, an automated mechanism to clean up objects that still exist but are no longer used.

To retrieve the garbage collection metrics for the ActiveMatrix BusinessWorks engine, specify the -verbose:gc option when starting the JVM used by the engine.

You can set the Java memory parameters by using the java.extended.properties option in the bwengine.tra file.

For example, specify the following in the bwengine.tra to set the heap size to 768M and retrieve the garbage collection metrics for the engine.

java.extended.properties -Xms768m -Xmx768m -verbose:gc