When to use - and when not to use - ABA mode for application performance
Introduced with PRPC 6.3, the Application-Based Assembly cache allows the rule resolution processing to execute significantly faster than in releases before V6.3. This approach is recommended for use when feasible.
This article describes how to determine whether your application can use this new feature and how to enable or disable it, whether application-wide or for specific users.
The Application-Based Assembly cache speeds up rule resolution, the sophisticated process that your PRPC application runs almost every time that a current rule at runtime requests another rule.
The rule resolution algorithm itself has changed only in rare situations between V6.3 and earlier releases. The algorithm uses dozens of facts about your requestor's current situation to find the "best" or "most appropriate" rule to fulfill your request. What is changed in 6.3 — in certain limited cases when Application-Based Assembly caching is enabled — is the order that RuleSet versions appear on your RuleSet list: the data structure that the algorithm uses.
The Application-Based Assembly (ABA) cache is sometimes called the AppCentric cache.
Operating in ABA mode is recommended for all customers for best performance of applications in V6.3, and is the default mode. Disabling ABA mode will cause the RuleSet list construction to match V6.2SP2 and earlier implementations.
You should only consider disabling the ABA mode if your application meets ALL of the following criteria:
- It was developed in a PRPC version earlier than V6.3.
- AND it uses Override RuleSets, which are deprecated and no longer supported for V6.3+
- OR you use Localized, Shared, or Component RuleSets in a way that violates best practices and is not guardrail complaint.
Enabling or disabling ABA mode
Application-Based Assembly operation is determined by two settings that work together:
- A Dynamic System Setting (or prconfig.xml file setting)
- The Revert to previous generation caching checkbox, on the Settings tab of the access group
The Dynamic System Setting prconfig/fua/assemblycachemode has three supported values:
- AC — For all applications to ABA mode
- Mixed — Users can be in ABA mode or in non-ABA mode, depending on the Revert to previous generation caching checkbox
- RA — Force all applications to non-ABA mode, also called rules assembly mode
As with most prconfig settings, changes take effect only when you next restart the system (or the node, if the setting is in a prconfig.xml file. (The optional /default suffix in this example means that the setting value applies to all nodes.)
If the Value of this Dynamic System Setting is Mixed, the Revert to previous generation caching checkbox is effective. If the Dynamic System Setting is AC or RA, the checkbox is ignored. If Mixed:
- Leave the checkbox cleared for ABA mode operation.
- Check the checkbox to disable ABA mode, and cause your requestor session to revert to the V6.2SP2 and earlier rules assembly cache mode, which generally may provide inferior run-time performance.
Changes to this checkbox take effect the next time you log in.