Hi everyone !
We have been using Oracle Database change notification in our application.
We are suddenly facing the issue 'ORA-29970: Specified registration id does not exist' while trying to register the table with a poller query.
It has been working fine so far with a different schema. The current schema has identical permissions and privileges as the previous schema.
If anyone is aware of the issue, Kindly let us know !!
Grants given -
GRANT CONNECT, CREATE TABLE, CREATE PROCEDURE, CREATE SEQUENCE TO schemaName;
GRANT CHANGE NOTIFICATION TO schemaName;
GRANT EXECUTE ON DBMS_CHANGE_NOTIFICATION TO schemaName;
Code is as follows -
OracleConnection oConn = connect();
Properties prop = new Properties();
prop.setProperty(oConn.DCN_NOTIFY_ROWIDS, "true");
prop.setProperty(oConn.DCN_QUERY_CHANGE_NOTIFICATION, "true");
DatabaseChangeRegistration dcr = oConn.registerDatabaseChangeNotification(prop);
Stack Trace -
java.sql.SQLException: ORA-29970: Specified registration id does not exist
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:193)
at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:873)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1167)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1289)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1491)
at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:406)
at dBTest.OracleDCN.run(OracleDCN.java:53)
at dBTest.OracleDCN.main(OracleDCN.java:22)