Support Article
Error 503: PegaRULES server not available
SA-4046
Summary
PRPC system is not accessible after a server restart.
Error Messages
Error 503: PegaRULES server not available
Inspection of the PRPC log files indicate that the PRPC Node fails to start up with the following exception stack being reported.
2014-11-05 10:36:50,268 [xxxxxxxx] [ STANDARD] [ ] ( etier.impl.EngineStartup) ERROR - PegaRULES initialization failed. Server: xxxxxxxxxxx
com.pega.pegarules.pub.context.InitializationFailedError: PRNodeImpl init failed
at com.pega.pegarules.session.internal.mgmt.PREnvironment.getThreadAndInitialize(PREnvironment.java:380)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.getThreadAndInitialize(PRSessionProviderImpl.java:1537)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineStartup.initEngine(EngineStartup.java:614)
<snip>
Caused by:
java.lang.IllegalStateException
at com.ibm.ejs.container.BMStatelessBeanO.setRollbackOnly(BMStatelessBeanO.java:68)
at com.pega.pegarules.pub.context.PRSessionContext.setRollbackOnly(PRSessionContext.java:181)
at com.pega.pegarules.data.internal.access.DatabaseImpl.commitOrRollbackAndRestoreAutoCommitAndEndTransaction(DatabaseImpl.java:6010)
at com.pega.pegarules.data.internal.access.DatabaseImpl.list(DatabaseImpl.java:5883)
at com.pega.pegarules.data.internal.access.DatabaseImpl.executeRDB(DatabaseImpl.java:6227)
at com.pega.pegarules.data.internal.access.DatabaseImpl.executeRDB(DatabaseImpl.java:6169)
at com.pega.pegarules.monitor.internal.license.LicenseDaemonImpl.callUsageAggregationStoredProcedure(LicenseDaemonImpl.java:447)
at com.pega.pegarules.monitor.internal.license.InvocationTrackerImpl.initializeAtStartup(InvocationTrackerImpl.java:414)
at com.pega.pegarules.session.internal.mgmt.PREnvironment.getThreadAndInitialize(PREnvironment.java:375)
... 46 more
Steps to Reproduce
Not easily replicated, the issue occurs intermittently in the customer environment after re-start of the server.
Root Cause
A defect in Pegasystems’ code/rules. Under certain circumstances within ThreadConnectionStoreImpl.endTransaction the execution path falls into the "container-manager tranasction" case and call PRSessionContext.setRollbackOnly. This may be invalid if the application is not participating in a container-managed transaction.
Resolution
This issue is resolved by hotfix item HFIX-10339 which ensures that a roll back on failure only occurs if the Container is providing the transaction to prevent the exception reported occurring and preventing the system initialization.
Published January 31, 2016 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.