Siebel Performance Tuning Guide > Tuning Siebel EAI for Performance > Best Practices for Siebel EAI Tuning >
Improving Workflow Process Manager Performance
This section discusses some performance issues for the Workflow Process Manager component.
For more information about Siebel Workflow performance, see Tuning Siebel Workflow for Performance. Also see Siebel Business Process Framework: Workflow Guide.
Workflow Process Manager is a task-based server component. A new thread is created for each request. However, sessions for Object Manager components (such as EAI Object Manager or AOMs) that may invoke workflow processes are cached and reused for subsequent requests. When sizing a system, you need to look at the maximum number of workflow tasks you expect to have active at a given time. This determines the maximum number of Object Manager sessions Siebel applications create. In general, it is recommended that, where possible, you create small workflow processes. If you cannot avoid creating a large workflow process, then divide the workflow process into sub-processes.
The exact CPU and memory consumption of each task depends on the actions performed in your workflow processes. To estimate CPU and memory consumption in your production environment, run a single task, measure its resource consumption, and make an estimation based on your maximum concurrent sessions. Take session caching into account when making these measurements.
If you need a large number of sessions, you may want to run Workflow Process Manager on multiple Siebel Server machines. You can then use Siebel Server load balancing to load-balance requests across the Siebel Servers. If you plan to run a significant number of tasks per server (such as 100 or more), you may also want to run multiple multithreaded processes.
If you are going to run several different types of workflows, you should run each type in a separate process. This makes it easier to monitor the overall CPU and memory usage of each process type.
The number of multithreaded processes and the number of tasks per process are controlled through the parameters MaxMTServers (Maximum MT Servers), MinMTServers (Minimum MT Servers), and MaxTasks (Maximum Tasks).
NOTE: These parameters are per Siebel Server. For example, MaxMTServers refers to how many multithreaded processes to run on each Siebel Server machine. For details, see Siebel System Administration Guide.
You can get performance tracing of workflows by setting the event WfPerf for the component in which your workflow is running. Setting the event to level 4 gives timing for the execution of the overall process. Setting the event to level 5 provides timing for each step as well.
You can set this event level for any Siebel Server component that invokes a workflow process as part of Siebel EAI functionality. For example, to set this event level for the MQ Receiver using srvrmgr, enter the following:
change evtloglvl WfPerf=5 for comp MqSeriesSrvRcvr
These events can be useful not just for measuring workflow performance but also for measuring the performance of business services executed within these workflows.