Support Article
Could not find stored procedure 'SPPR_POPULATE_INDEX_DATA'
SA-4444
Summary
We see the following error occuring very frequently in our logfiles:
16:15:13,682 INFO [stdout] (Dispatcher-Thread-154) com.microsoft.sqlserver.jdbc.SQLServerException: Could not find stored procedure 'SPPR_POPULATE_INDEX_DATA'.
Error Messages
2014-08-13 08:00:02,203 [-threads-1516107818)] [ STANDARD] [ ] [ PegaRULES:07.10] (BIndexes.PegaAESRemote_.Action) INFO - Pushing DB Index Data to AES from Node xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2014-08-13 08:00:02,219 [-threads-1516107818)] [ STANDARD] [ ] [ PegaRULES:07.10] (railData.PegaAESRemote_.Action) INFO - Pushing out guardrail stats to AES from Node xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2014-08-13 08:00:03,922 [-threads-1516107818)] [ STANDARD] [ ] [ PegaRULES:07.10] (l.access.ConnectionManagerImpl) ERROR - Not returning connection 49247 for database "pegadata" to the pool as it previously encountered the following error
User ID: System
Last SQL: {call SPPR_POPULATE_INDEX_DATA(?,?)}
com.microsoft.sqlserver.jdbc.SQLServerException: Could not find stored procedure 'SPPR_POPULATE_INDEX_DATA'.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:404)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:350)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(SQLServerPreparedStatement.java:332)
at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.execute(WrappedPreparedStatement.java:404)
at com.pega.pegarules.data.internal.access.DatabasePreparedStatementImpl.execute(DatabasePreparedStatementImpl.java:990)
at com.pega.pegarules.data.internal.access.DatabaseImpl.list(DatabaseImpl.java:6221)
at com.pega.pegarules.data.internal.access.DatabaseImpl.executeRDB(DatabaseImpl.java:6691)
at com.pega.pegarules.data.internal.access.DatabaseImpl.executeRDB(DatabaseImpl.java:6647)
at com.pega.pegarules.data.internal.access.DatabaseImpl.deleteRDB(DatabaseImpl.java:5958)
at com.pegarules.generated.activity.ra_action_populateindexfortable_3d3e0720d87a82b3bd55cbdb4e416484.step2_circum0(ra_action_populateindexfortable_3d3e0720d87a82b3bd55cbdb
[...]
Steps to Reproduce
Use the statistics on the AES node or trigger the PegaAESRemote agents on the client node (the specific agent / activity is PushDBIndexes).
Root Cause
The root cause of this problem is a defect in Pegasystems’ code/rules: address in ML7 [BUG-162857]
Resolution
Creating a SYNONYM to 'bridge' across the schemas worked in our case; the following SQL achieved this:
create synonym SPPR_POPULATE_INDEX_DATA for rules.sppr_populate_index_data;
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.