Components Affecting the Engine Performance

This section gives an overview of the message flow architecture and the factors that affect the performance of the ActiveMatrix BusinessWorks engine.

Process Execution in BusinessWorks Engine, illustrates the way process instances are processed in ActiveMatrix BusinessWorks and the various factors that affect the performance of the engine.

Figure 56: Process Execution in BusinessWorks Engine

The process instances created are typically held in memory. However, this may not be the case if the following parameters are set:

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 will be moved back into memory when sufficient memory is available.

Flow Limit: When set, this property limits the number of process instances that can be created. If the number of process instances being created exceeds the value of FlowLimit, the engine suspends the creation of new process instances. However, it continues executing the process instances in memory. The engine resumes creating new process instances when process instances, approximately half the value specified for FlowLimit, have completed. For more information about FlowLimit property, see Controlling Execution of ActiveMatrix BusinessWorks Services in Setting Deployment Options .

The number of process instances that can be created in memory is also limited by the memory available on the machine and the memory allocated to the JVM on which the process engine executes.

The process instances in memory are executed by the ActiveMatrix BusinessWorks engine. The number of process instances that can be executed concurrently by the engine is limited by the maximum number of threads, specified by property ThreadCount. Threads execute a finite number of tasks or activities uninterrupted and then yield to the next process instance that is ready.

The engine property StepCount determines the number of tasks that are executed by a thread uninterruptedly. However, the exceptions to StepCount occur when the job is blocked or in a transaction. When a job is in a transaction, the thread will not be released even if the StepCount is exceeded. However, if a process instance is waiting or is in a blocked state, it can be paged out and the freed memory used to process another process instance.

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

For more information on setting these properties, see Custom Engine Properties.

In addition to the components above, the performance of the ActiveMatrix BusinessWorks engine is also affected by external factors such as

rate of incoming messages,
network latency,
performance of external applications with whom BW processes communicate, and
other OS processes that may be running on the system.