Improving the performance of Rule Execution Server
You improve the performance by designing and creating efficient rulesets. You can create efficient rulesets when you develop a business rule application. The goal of performance tuning is to decrease the amount of time and resources that your application server requires to process requests. Performance tuning allows your application server to complete more tasks in less time.
Improving performance during development
During the development phase of your application, you can enhance the performance of ruleset execution by creating efficient artifacts and choosing the execution mode for your artifacts.
The following table describes how to optimize the performance by creating more efficient artifacts.
| Development artifact | Recommendation |
|---|---|
|
Ruleset size |
The size of a ruleset affects the total execution time. The main cause of resource usage when generating a RuleApp archive is the number and size of rule artifacts that are deployed as part of the RuleApp. Business rule applications work better if you limit the size of the resources that are deployed to the execution environment. |
|
Ruleset resources |
To reduce the resource usage cost of a business rule application:
|
|
Ruleflow |
To improve the flow of the decisions in ruleflows, keep ruleflows simple. Complex ruleflows reduce performance. |
|
XML XOM |
Configure rulesets that use an XML XOM to run in multiple simultaneous executions. Set the ruleset.xmlDocumentDriverPool.maxSize ruleset property to configure the execution pool of the XML document drivers. The default value is 1. |
|
Rule tasks |
Avoid dynamic filters in rule tasks. Use a fixed list of rules where possible. |
|
Decision tables |
Verify the size of the decision table in the Rule Designer technical view. Dividing a decision table into several smaller tables can reduce the size of the ruleset significantly. |
For more information about the artifacts that can affect performance, see Rule Execution Server administration artifacts.
You can optimize the performance in specific circumstances by choosing an appropriate execution mode. For more information about execution modes, see Choosing an execution mode.