Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

PRPC Application is starting with an error

SA-4068

Summary



After creating a new JVM and installing PRPC, the application is coming up but user is unable to get to the login page in PRPC 6.2 SP2. Instead user is getting the following Error message on screen. “Error 503: PegaRULES server not available”.

Error Messages



2014-11-06 13:52:56,489 [your_server] [          ] [                    ] (  internal.access.DatabaseImpl) ERROR   - Problem reading class definitions: Database-NonexistentTable       pr4_base      PegaRULES

2014-11-06 13:52:56,491 [your_server] [          ] [                    ] (   mgmt.base.ThreadPassivation) FATAL   - There was a problem initializing the Database Interface: Database-NonexistentTable     pr4_base      PegaRULES
com.pega.pegarules.pub.database.NonexistentTableException: Database-NonexistentTable     pr4_base       PegaRULES
From: (unknown) 
       at com.pega.pegarules.data.internal.access.TableInformationMapImpl.lookupTableInfo(TableInformationMapImpl.java:520)
       at com.pega.pegarules.data.internal.access.TableInformationMapImpl.get(TableInformationMapImpl.java:383)
       at com.pega.pegarules.data.internal.access.TableInformationMapImpl.getWithConnection(TableInformationMapImpl.java:350)
       at com.pega.pegarules.data.internal.dictionary.ClassMapImpl.init(ClassMapImpl.java:1814)
       at com.pega.pegarules.data.internal.access.DatabaseImpl.<init>(DatabaseImpl.java:1645)
       at com.pega.pegarules.data.internal.access.DatabaseImpl.newDatabaseImpl(DatabaseImpl.java:1558)
       at com.pega.pegarules.data.internal.PRDataProviderImpl.ctorDatabaseImpl(PRDataProviderImpl.java:600)
       at com.pega.pegarules.session.internal.mgmt.base.ThreadPassivation.configureThreadImpl(ThreadPassivation.java:267)
       at com.pega.pegarules.session.internal.mgmt.PRThreadBase.configureThread(PRThreadBase.java:442)
       at com.pega.pegarules.session.internal.mgmt.PRThreadImpl.<init>(PRThreadImpl.java:307)
       at com.pega.pegarules.session.internal.mgmt.PRThreadImpl.acquire(PRThreadImpl.java:322)
       at com.pega.pegarules.session.internal.mgmt.base.RequestorThreadSync.getOrCreateThread(RequestorThreadSync.java:171)
       at com.pega.pegarules.session.internal.mgmt.base.RequestorThreadSync.getOrCreateThread(RequestorThreadSync.java:158)
       at com.pega.pegarules.session.internal.mgmt.base.RequestorThreadSync.getOrCreateThread(RequestorThreadSync.java:154)
       at com.pega.pegarules.session.internal.mgmt.base.RequestorPassivation.configureRequestorImpl(RequestorPassivation.java:411)
       at com.pega.pegarules.session.internal.mgmt.PRRequestorBase.configureRequestor(PRRequestorBase.java:474)
       at com.pega.pegarules.session.internal.mgmt.PRRequestorImpl.<init>(PRRequestorImpl.java:267)
       at com.pega.pegarules.session.internal.mgmt.PRRequestorImpl.acquire(PRRequestorImpl.java:284)
       at com.pega.pegarules.session.internal.mgmt.base.NodeRequestorMgt.createRequestorImpl(NodeRequestorMgt.java:1184)

Caused by: 
com.pega.pegarules.pub.database.NonexistentTableException: Database-NonexistentTable     pr4_base       PegaRULES
From: (unknown) 
       at com.pega.pegarules.data.internal.access.TableInformationMapImpl.lookupTableInfo(TableInformationMapImpl.java:520)
       at com.pega.pegarules.data.internal.access.TableInformationMapImpl.get(TableInformationMapImpl.java:383)
       at com.pega.pegarules.data.internal.access.TableInformationMapImpl.getWithConnection(TableInformationMapImpl.java:350)
       at com.pega.pegarules.data.internal.dictionary.ClassMapImpl.init(ClassMapImpl.java:1814)
       at com.pega.pegarules.data.internal.access.DatabaseImpl.<init>(DatabaseImpl.java:1645)
       at com.pega.pegarules.data.internal.access.DatabaseImpl.newDatabaseImpl(DatabaseImpl.java:1558)
       at com.pega.pegarules.data.internal.PRDataProviderImpl.ctorDatabaseImpl(PRDataProviderImpl.java:600)
       at com.pega.pegarules.session.internal.mgmt.base.ThreadPassivation.configureThreadImpl(ThreadPassivation.java:267)


Steps to Reproduce



Log into PRPC application.


Root Cause



This error can occur when two different Process Commander Database schemas are present in the same database server, but the Data-Admin-DB-Table instances do not explicitly identify which schema to use.
Two or more schemas can be present in one database. The issue occurs when a database contains multiple schemas, supporting multiple versions of Process Commander, where the corresponding tables have differing columns. 
 
For example, if you're running Version 6.1, and you install Version 6.2 into the same database instance, then the Version 6.2 schema has additional columns in some of the tables. Such differences in table columns can arise even without a major version change; it could occur with just a difference in minor versions or even two different setups “dev” and “test” on one database, as long as the database schemas differ.  In addition, this situation may also occur when a database schema is moved from one system (“dev”) into another (“test”).  
 
A JDBC statement is used to retrieve column information from the database. This statement is invoked the first time the system needs to read from or write to each table in the database, to fetch the column information for that table. 
To identify the schema, this JDBC statement relies on the information entered into the Database Table instances (Data-Admin-DB-Table class). 
If the database contains two similar schemas in the database, but neither is uniquely identified in the Database Table instance, then the JDBC statement returns columns from all tables in the database with the requested table name (“pr4_base”), no matter what schema they belong to which results in the com.pega.pegarules.pub.database.NonexistentTableException.  


Resolution



The following PDN article clearly explains the issue in detail and the resolution:
https://pdn.pega.com/pegarules-database/troubleshooting-obj-save-is-trying-to-write-to-a-non-existent-column

 
Follow the resolution steps under https://pdn.pega.com/pegarules-database/troubleshooting-obj-save-is-trying-to-write-to-a-non-existent-column and restart your server(s) or JVM(s) to resolve this issue.
 
Suggest Edit

Published January 31, 2016 - Updated October 8, 2020

Did you find this content helpful? Yes No

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us