To improve workflow performance, an administrator can configure
the system for asynchronous (background) rules processing, and the
workflow author can identify the specific rule sets that require this
processing.
While the Rules software can execute most rule sets in microseconds
or less, some rule sets, such as database lookups, require longer
processing time. While a workflow system server thread that handles
the client request is waiting for a response from the Rules software
it is not available to process other incoming requests.
Asynchronous processing creates an extra load on the workflow system
by requiring scheduling of background rules execution, extra queuing,
and extra processing. For a rule set specified for asynchronous processing,
the workflow system queues the rules execution to the ISI queue for
background execution. A rule set not specified for asynchronous processing
is executed via the normal execution path. Therefore, to avoid overall
system degradation, only rule sets that require long process time
should be categorized for asynchronous processing.
Important: Using Asynchronous Rules with the OnSave option
cause unexpected behavior in your application, because a step that
was previously locked will be automatically unlocked after the rule
has been executed. When a rule executes asynchronously, the work item
is removed from its queue, put into the isi queue for execution by
the vwisi thread, and then returned to the original queue. During
this procedure, it is not possible to retain the lock on the work
object, so after the asynchronous rule executes, a work item that
was previously locked will no longer be locked by the user. This issue
does not apply for rules executed asynchronously Before Execution
or After Completion of the step.
For cases where the isi thread cannot empty its queue
fast enough, you can use the following procedure to increase the number
of vwisi threads to serve the InstructionSheetInterpreter queue.
- In the administration console, increase the maximum number of primary threads for the workflow subsystem.
- In the domain navigation pane, select the domain.
- On the Workflow Subsystem tab, increase the Maximum primary
threads value.
If you have rule sets that cannot be executed by the rules engine in less than a second, you can
complete the following steps to enable asynchronous rules processing:
- Access the configuration for remote servers in the administration console:
- In the domain navigation pane, select the object store.
- In the object store navigation pane, click .
- In the details pane, click the Remote Servers tab.
- On the Remote Servers tab, select the Allow Async
Rules check box to make the Asynchronous Rules option available in Process
Designer.
- Work with the workflow author to identify the specific rule sets that are to use asynchronous
processing.