Support Article

Pega-Rules System Cleaner agent failing

SA-1423

Summary



We did an application restart on the PRPC 5.4 application and ever since the system cleaner agent is failing with an error saying invalid identifier, PZASMCACHECONFIGID in the database table pr_sys_statusnodes.

This identifier is not part of PRPC 5.4 but it's part of PRPC 7.1. The production system do have a PRPC 7.1.5 installation on the same physical server but on a separate weblogic domain with a separate database schema on the same database.

The PRPC 5.4 application is scheduled for PRPC 7.1.5 upgrade activities to start imminently.

We want to find out how the agent started looking for the identifier on the PRPC table after the restart as we are unable to trace anything to cause that and more importantly, whether this will cause any issues when we are upgrading the application.


Error Messages



Agent Pega-RULES #0: Code-.SystemCleaner encountered an execution error. Restarting after delay. Exception at 20140908T211939.267 GMT: com.pega.pegarules.pub.PRRuntimeException: PRRuntimeException at com.pegarules.generated.activity.ra_action_removeoldnodes_8f057066faadc2cf0bac568e1f3f7145.step1_circum0(ra_action_removeoldnodes_8f057066faadc2cf0bac568e1f3f7145.java:217) at com.pegarules.generated.activity.ra_action_removeoldnodes_8f057066faadc2cf0bac568e1f3f7145.perform(ra_action_removeoldnodes_8f057066faadc2cf0bac568e1f3f7145.java:76) at com.pega.pegarules.engine.runtime.Executable.doActivity(Executable.java:3079) at com.pegarules.generated.activity.ra_action_systemcleaner_9f70e37d6d0d6093b1a0897f5d89218b.step3_circum0(ra_action_systemcleaner_9f70e37d6d0d6093b1a0897f5d89218b.java:458) at com.pegarules.generated.activity.ra_action_systemcleaner_9f70e37d6d0d6093b1a0897f5d89218b.perform(ra_action_systemcleaner_9f70e37d6d0d6093b1a0897f5d89218b.java:107) at com.pega.pegarules.engine.context.agent.QueueProcessor.runActivity(QueueProcessor.java:403) at com.pega.pegarules.engine.context.agent.QueueProcessor.execute(QueueProcessor.java:308) at com.pega.pegarules.engine.context.BatchRequestorTask.run(BatchRequestorTask.java:591) at com.pega.pegarules.engine.context.BatchRequestorTask.run(BatchRequestorTask.java:388) at com.pega.jsr166backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:991) at com.pega.jsr166backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:533) at java.lang.Thread.run(Thread.java:595) Caused by: com.pega.pegarules.pub.database.DatabaseException: There was a problem getting a list: code: 904 SQLState: 42000 Message: ORA-00904: "PZASMCACHECONFIGID": invalid identifier From: (B26893D4842D3D9FBEBBF79824796F5DC) SQL: select PXCREATEDATETIME as "pxCreateDateTime" , PXINSNAME as "pxInsName" , PXOBJCLASS as "pxObjClass" , PXUPDATEDATETIME as "pxUpdateDateTime" , PYACTIVEUSERCOUNT as "null" , PYBATCHINDEXBUILT as "pyBatchIndexBuilt" , PYCLEANSHUTDOWN as "pyCleanShutdown" , PYCODESETSLIST as "null" , PYLASTINDEXBUILDDATETIME as "pyLastIndexBuildDateTime" , PYLASTPULSEDATETIME as "pyLastPulseDateTime" , PYNODENAME as "pyNodeName" , PYRUNSTATE as "null" , PYSHUTDOWNNOW as "pyShutdownNow" , PYSTARTEDDATETIME as "pyStartedDateTime" , PYSTOPPEDDATETIME as "pyStoppedDateTime" , PYSYSNODEID as "pySysNodeID" , PYSYSTEMNAME as "pySystemName" , PZASMCACHECONFIGID as "null" , PZINSKEY as "pzInsKey" from pr_sys_statusnodes where pzInsKey >= ? and (pzInsKey <= ? or pzInsKey like 'SYSTEM-STATUS-NODES %') and pxObjClass = ? order by pzInsKey SQL Inserts: <SYSTEM-STATUS-NODES > <SYSTEM-STATUS-NODES > <System-Status-Nodes> Caused by SQL Problems. Problem #1, SQLState 42000, Error code 904: java.sql.SQLException: ORA-00904: "PZASMCACHECONFIGID": invalid identifier at com.pega.pegarules.engine.database.ExceptionInformation.createExceptionDueToDBFailure(ExceptionInformation.java:148) at com.pega.pegarules.engine.database.DatabaseImpl.list(DatabaseImpl.java:4293) at com.pega.pegarules.engine.database.DatabaseImpl.list(DatabaseImpl.java:4091) at com.pegarules.generated.activity.ra_action_removeoldnodes_8f057066faadc2cf0bac568e1f3f7145.step1_circum0(ra_action_removeoldnodes_8f057066faadc2cf0bac568e1f3f7145.java:214) at com.pegarules.generated.activity.ra_action_removeoldnodes_8f057066faadc2cf0bac568e1f3f7145.perform(ra_action_removeoldnodes_8f057066faadc2cf0bac568e1f3f7145.java:76) at com.pega.pegarules.engine.runtime.Executable.doActivity(Executable.java:3078) at com.pegarules.generated.activity.ra_action_systemcleaner_9f70e37d6d0d6093b1a0897f5d89218b.step3_circum0(ra_action_systemcleaner_9f70e37d6d0d6093b1a0897f5d89218b.java:458) at com.pegarules.generated.activity.ra_action_systemcleaner_9f70e37d6d0d6093b1a0897f5d89218b.perform(ra_action_systemcleaner_9f70e37d6d0d6093b1a0897f5d89218b.java:107) at com.pega.pegarules.engine.runtime.Executable.doActivity(Executable.java:3078) at com.pega.pegarules.engine.context.agent.QueueProcessor.runActivity(QueueProcessor.java:403) at com.pega.pegarules.engine.context.agent.QueueProcessor.execute(QueueProcessor.java:308) at com.pega.pegarules.engine.context.BatchRequestorTask.run(BatchRequestorTask.java:591) at com.pega.pegarules.engine.context.PREnvironment.doWithRequestorLocked(PREnvironment.java:900) at com.pega.pegarules.engine.context.PREnvironment.doWithRequestorLocked(PREnvironment.java:643) at com.pega.pegarules.engine.context.BatchRequestorTask.run(BatchRequestorTask.java:388) at com.pega.jsr166backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:991) at com.pega.jsr166backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:532) ... 1 more Caused by: java.sql.SQLException: ORA-00904: "PZASMCACHECONFIGID": invalid identifier at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:440) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396) at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:837) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:445) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:523) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207) at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:863) at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1153) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1275) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3576) at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3677) at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1086) at weblogic.jdbc.wrapper.PreparedStatement.execute(PreparedStatement.java:70) at com.pega.pegarules.engine.database.DatabasePreparedStatement.execute(DatabasePreparedStatement.java:826) at com.pega.pegarules.engine.database.DatabaseImpl.list(DatabaseImpl.java:4253) ... 16 more


Steps to Reproduce



Start the agent


Root Cause


 

We believe the issue the user faces is similar to the one described in: https://pdn.pega.com/pegarules-database/troubleshooting-obj-save-is-trying-to-write-to-a-non-existent-column

To get around the issue in your 5.4 instance, you can follow one of the following:

1. Remove the Read access for 5.4 Schema to 7.1 Schema objects.

2. Follow the steps in PDN article above to define the Schema in all the Database Table instances in the 5.4 node.

The reason for this is that if no schema is specified, while constructing the SQL query, PRPC will look at all column names for a particular table, and if it has access to a higher version PRPC schema with additional columns (as in this case for 7.1) then it includes them as well in the query and breaks it.



Resolution



 The user resolved the issue after changing the DB privileges.

Published September 19, 2014 — Updated January 31, 2016

Have a question? Get answers now.

Visit the Pega Support Community to ask questions, engage in discussions, and help others.