Question
java.lang.IllegalStateException: Internal state is compromised; cannot write out application hierarchy and/or rulesets
Hi Team,
Can anyone suggest, how to resolve this exception.
2017-05-07 06:46:45,125 [.PegaWorkManager : 4] [ STANDARD] [ ] [ ] (ernal.async.BatchRequestorTask) ERROR - Batch activity "XYZ" threw:
java.lang.IllegalStateException: Internal state is compromised; cannot write out application hierarchy and/or rulesets
at com.pega.pegarules.session.internal.authorization.context.AppCentricRulesetIndexWriter.populateApplicationRuleHierarchy(AppCentricRulesetIndexWriter.java:524)
at com.pega.pegarules.session.internal.authorization.context.AppCentricRulesetIndexWriter.populateApplicationRuleHierarchy(AppCentricRulesetIndexWriter.java:613)
at com.pega.pegarules.session.internal.authorization.context.AppCentricRulesetIndexWriter.populateApplicationRuleHierarchy(AppCentricRulesetIndexWriter.java:634)
at com.pega.pegarules.session.internal.authorization.context.AppCentricRulesetIndexWriter.writeApplicationInfoToDatabase(AppCentricRulesetIndexWriter.java:193)
at com.pega.pegarules.session.internal.authorization.context.custom.ManagedApplicationContext.updateDBRSLAndAppStack(ManagedApplicationContext.java:847)
at com.pega.pegarules.session.internal.authorization.context.custom.ManagedApplicationContext.updateToParent(ManagedApplicationContext.java:430)
at com.pega.pegarules.session.internal.authorization.context.custom.ManagedApplicationContext.getChangeCount(ManagedApplicationContext.java:390)
at com.pega.pegarules.session.internal.authorization.context.AbstractApplicationContext.getAppInfo(AbstractApplicationContext.java:52)
at com.pega.pegarules.session.internal.authorization.context.AppCentricRulesetIndexWriter.populateApplicationRuleHierarchy(AppCentricRulesetIndexWriter.java:629)
at com.pega.pegarules.session.internal.authorization.context.AppCentricRulesetIndexWriter.writeApplicationInfoToDatabase(AppCentricRulesetIndexWriter.java:193)
at com.pega.pegarules.session.internal.authorization.context.custom.ManagedApplicationContext.updateDBRSLAndAppStack(ManagedApplicationContext.java:847)
at com.pega.pegarules.session.internal.authorization.context.custom.ManagedApplicationContext.<init>(ManagedApplicationContext.java:107)
at com.pega.pegarules.session.internal.authorization.context.custom.CustomApplicationContext.<init>(CustomApplicationContext.java:75)
at com.pega.pegarules.session.internal.authorization.context.ContextUtils.ensureCustomizable(ContextUtils.java:890)
at com.pega.pegarules.session.internal.authorization.Authorization.alterRuleSetList(Authorization.java:1035)
at com.pega.pegarules.session.internal.authorization.Authorization.alterRuleSetList(Authorization.java:1028)
at com.pega.pegarules.session.internal.async.BatchRequestorTask.run(BatchRequestorTask.java:817)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.performTargetActionWithLock(PRSessionProviderImpl.java:1259)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:1008)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:901)
at com.pega.pegarules.session.internal.async.BatchRequestorTask.run(BatchRequestorTask.java:670)
at com.pega.pegarules.session.internal.async.Agent.queueBatchActivityForAgent(Agent.java:1504)
at com.pega.pegarules.session.internal.async.Agent.queueBatchActivityForAgent(Agent.java:1293)
at com.pega.pegarules.session.internal.async.AgentQueue.run(AgentQueue.java:792)
at com.pega.pegarules.session.internal.async.Agent.runAgentTask(Agent.java:936)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.AsyncServant.processAsyncTask(AsyncServant.java:221)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.AsyncServant.invoke(AsyncServant.java:167)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl._invokeEngine_privact(EngineImpl.java:315)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(EngineImpl.java:263)
at com.pega.pegarules.session.internal.engineinterface.etier.ejb.EngineBean.invokeEngine(EngineBean.java:225)
at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:370)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingThrowable(PRBootstrap.java:411)
at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethodPropagatingThrowable(AppServerBridgeToPega.java:223)
at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethodPropagatingException(AppServerBridgeToPega.java:245)
at com.pega.pegarules.internal.etier.ejb.EngineBeanBoot.invokeEngine(EngineBeanBoot.java:168)
at com.pega.pegarules.internal.etier.interfaces.EJSLocalStatelessEngineBMT_f2439d86.invokeEngine(Unknown Source)
at com.pega.pegarules.session.internal.engineinterface.etier.mdb.PRAsync.processRequest(PRAsync.java:155)
at com.pega.pegarules.session.internal.engineinterface.etier.asynchbeans.AsyncTask.run(AsyncTask.java:64)
at com.pega.pegarules.session.internal.engineinterface.etier.asynchbeans.RunnableWrapper.run(RunnableWrapper.java:71)
at com.ibm.ws.asynchbeans.J2EEContext$RunProxy.run(J2EEContext.java:269)
at java.security.AccessController.doPrivileged(AccessController.java:229)
at com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:795)
at com.ibm.ws.asynchbeans.WorkWithExecutionContextImpl.go(WorkWithExecutionContextImpl.java:222)
at com.ibm.ws.asynchbeans.ABWorkItemImpl.run(ABWorkItemImpl.java:206)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862)
Caused by:
com.pega.pegarules.pub.PRRuntimeException: caught exception during autocommit check
at com.pega.pegarules.data.internal.access.ConnectionManagerImpl.returnConnection(ConnectionManagerImpl.java:2228)
at com.pega.pegarules.data.internal.access.ThreadConnectionStoreImpl.returnConnection(ThreadConnectionStoreImpl.java:504)
at com.pega.pegarules.data.internal.access.RDBPageResultPackager.close(RDBPageResultPackager.java:897)
at com.pega.pegarules.data.internal.access.DatabaseImpl.executeRDB(DatabaseImpl.java:6699)
at com.pega.pegarules.data.internal.access.DatabaseImpl.executeRDB(DatabaseImpl.java:6632)
at com.pega.pegarules.data.internal.access.DatabaseImpl.executeRDB(DatabaseImpl.java:6613)
at com.pega.pegarules.session.internal.authorization.context.AppCentricRulesetIndexWriter.doesTopAppHashNeedToBeInsertedIntoFlattenedHierarchy(AppCentricRulesetIndexWriter.java:562)
at com.pega.pegarules.session.internal.authorization.context.AppCentricRulesetIndexWriter.populateApplicationRuleHierarchy(AppCentricRulesetIndexWriter.java:501)
... 47 more
Caused by:
com.ibm.websphere.ce.cm.ObjectClosedException: DSRA9110E: Connection is closed.
at com.ibm.ws.rsadapter.jdbc.WSJdbcWrapper.createClosedException(WSJdbcWrapper.java:122)
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.activate(WSJdbcConnection.java:2884)
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.getAutoCommit(WSJdbcConnection.java:2012)
at com.pega.pegarules.data.internal.access.DatabaseConnectionImpl.getAutoCommit(DatabaseConnectionImpl.java:815)
at com.pega.pegarules.data.internal.access.ConnectionManagerImpl.returnConnection(ConnectionManagerImpl.java:2221)
... 54 more
Thanks for your help in advance.
Regards,
Purnachandra.
Hi Purnachandra,
This error usually comes when there is a temporary outage of database or there are some issues with the datasource configuration. In the above logs we can clearly see that the datasource connection failed.
Was this a one time issue? Please check the JDBC datasource configurations on the app server side and also check if there were any issues with the database.
You might want to update the datasource to add connection pre-testing and failing connection clean-up in the Websphere console to deal with temporary outages.