When running the diagnostics in the Rule Execution Server console, the test "Rule Session Second Execution" fails with a "java.lang.IllegalStateException: Not all XUs have been updated with the new ruleset" error.
When you run the diagnostics in the Rule Execution Server console, the test "Rule Session Second Execution" fails with the following error:
java.lang.IllegalStateException: Not all XUs have been updated with the new ruleset.
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Diagnosing The Problem
Review the application server logs for more information on what causes the error.
Resolving The Problem
This Rule Execution Server diagnostic error can occur in a number of circumstances. The following is a non-exhaustive list of scenarios that could lead to this issue:
- The XU has not been called before the Rule Execution Server diagnostics ran:
On WebSphere Application Server, the pool size is not instantiated beforehand and therefore prevents the server diagnostics from validating a Rule Execution Server before the first execution of a rule engine. In this case, the eXecution Unit (XU) might not have been initialized before the diagnostics are run, and hence the error is expected. For more information, refer to the following document for WebSphere Application Server:
- The application security is not enabled in WebSphere Application Server:
If working with WebSphere Application Server, make sure that you enable application security, as explained in the documentation under WebSphere ILOG JRules BRMS V7.1: Java EE add-ons > Installing on WebSphere Application Server > Installing Rule Execution Server > Installing Rule Execution Server on WebSphere Application Server V7.0 > Activating security on WebSphere V7.0 > Creating users and groups.
Failing to enable application security results in errors whose root cause (last "Caused by:" entry in the stack trace) is "javax.management.JMRuntimeException: ADMN0022E: Access is denied for the getAdapterVersion operation on IlrXUManagement MBean because of insufficient or empty credentials."
To fix the issue, activate application security as explained in the documentation above, map the users to the required roles when deploying the EAR, and restart the server.
You should then be prompted for a login/password to sign in to the Rule Execution Server console. Note that if you did not set the proper mapping, you will get the error described in the document Authorization failed, Not granted any of the required roles when logging in.
- The application server security is enabled but the Rule Execution Server users do not have the required administrative roles:
If working with WebSphere Application Server or WebLogic, you must provide some level of administrative role to the Rule Execution Server admin user so that that user can access MBeans.
For WebSphere Application Server, refer to technote "Rule Execution Server diagnostic MBean execution fails on WAS". For WebLogic, refer to technote "Rule Execution Server diagnostic MBean execution fails on WL".
- Asynchronous parsing is enabled and the database connection is slow:
This issue has been addressed by APAR RS00286 and has been fixed in JRules 7.1 onwards. In earlier versions, as a workaround, set the asynchronousRulesetParsing parameter to false before running the Rule Execution Server diagnostics.
Installing Rule Execution Server > Verifying the Rule Execution Server installation
If you work with a cluster, the following document might be useful:
Warnings in diagnostics before first execution in a Rule Execution Server XU cluster
If the above scenarios do not apply to you, please contact IBM support with the Rule Execution Server console log, the server logs (including the FFDC logs if you work with WebSphere Application Server), and all environmental details, including whether Rule Execution Server is deployed on a cluster.
Was this topic helpful?
15 June 2018