|This document addresses how to improve the performance when working with ODM Decision Center or Rule Team Server (RTS) . For the purposes of this document, we will use RTS to refer to both entities, unless explicitly stated otherwise.
You can incorporate the following recommendations, if applicable to your environment:
- Separate your installations of Rule Execution Server (RES) and RTS. A high RES execution load will negatively impact RTS performance. Check if you been seeing heavier than normal RES execution loads during the period of poor RTS performance.
- If possible, migrate to v188.8.131.52 or later, since certain performance improvements, especially for ruleset extraction and editing, have been incorporated. This would require all the other components (such as RES, Rule Studio, Decision Server, Rule Designer, Decision Validation Services) to be migrated to the same version. (If you face compile errors in RTS after migrating, refer to this technote.)
- Dedicate enough processing resources (CPUs) to RTS. Deploy RTS to a cluster on your application server, to improve performance and scalability.
- Make sure you provide adequate heap size to RTS. It is normal to set a maximum heap size of 1024MB (using the JVM argument -Xmx). For large projects this value can be higher. Also make sure you have set the initial heap size to a reasonable amount (such as 512MB), using the JVM argument -Xms.
- Estimate the database capacity that should be allocated to RTS.
- Make sure that the link between the application server and the database has low latency (check ping round trip times between servers), sufficient bandwidth, and that the datasource is set up for effective connection pooling. See Decision Center performance and Tomcat datasource for an illustration of how the datasource configuration can negatively affect performance.
Startup and Indexing
- If you have a large project, we recommend you break the project down into multiple projects which are dependent on one another. This will reduce the size of the project currently being edited, and hence reduce the amount of resources required.
- Reduce the size of the Business Object Model (BOM) by removing members, classes and verbalizations that are not used. You can also split the BOM into multiple smaller BOMs, and use categories.
- Reduce the size of large Decision Tables by splitting them into multiple smaller tables. There is no hard set limit and only experience with a specific application and setup can show what is a practical maximum, but it is typically recommended to have no more than a few hundred rows per Decision Table (i.e 300-400).
- Turn off Symmetry, Overlap and Gap checking for Decision Tables. Navigate to the decision table and edit it. In the view "Step 2: Table", click on the icon with a magnifying glass above the decision table, with the tooltip "Edit table properties". In the Table Properties editor, uncheck the Symmetry, Overlap and Gap checks. Note that these checks will no longer be enforced while editing decision tables.
- Edit Decision Tables using the Edit all table mode, In this mode there is no round trip to the server to validate input (as is normally the case with the default Decision Table editor) until the changes are committed using the submit button.
- Disable Rule analysis checks by unchecking Project > Edit Project options > Enable rule analysis.
Decision Validation Services (DVS) tests
- Improve the response time of DVS tests conducted from RTS.
- The RTS database can become burdened with old records. Archive the RTS database (v7.1 and earlier, and ODM), to avoid performance problems.
In addition, refer to the following documents:
If the above recommendations do not help, contact IBM support with the following information:
- Environment details including the application server, JDK, database and operating system.
- RTS server logs, including FFDC logs if working with WebSphere Application Server.
- The typical behavior of RTS users: Are they mostly viewing or editing? Is there a lot of ruleset generation going on simultaneously while editing?
- The typical load on RTS, including the number of simultaneous users and number of rulesets being generated