averemee-si / oracdc

Oracle database CDC (Change Data Capture)
http://a2-solutions.eu/
Apache License 2.0
105 stars 36 forks source link

ORA-02291: integrity constraint (FK_KEY) violated - parent key not found #4

Closed sonnguyen-dba closed 3 years ago

sonnguyen-dba commented 3 years ago

Hi Alexei

[2020-10-08 20:05:09,130] ERROR WorkerSinkTask{id=oracdc-sink-oracle-0} Task threw an uncaught and unrecoverable exception (org.apache.kafka.connect.runtime.WorkerTask:186) org.apache.kafka.connect.errors.ConnectException: Exiting WorkerSinkTask due to unrecoverable exception. at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:567) at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:325) at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:228) at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:200) at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:184) at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:234) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.apache.kafka.connect.errors.ConnectException: java.sql.SQLException: java.sql.BatchUpdateException: ORA-02291: integrity constraint (BETA.FK_PM_PRODUCT_PM_BRAND1) violated - parent key not found

    at eu.solutions.a2.cdc.oracle.OraCdcJdbcSinkTask.put(OraCdcJdbcSinkTask.java:141)
    at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:545)
    ... 10 more

Caused by: java.sql.SQLException: java.sql.BatchUpdateException: ORA-02291: integrity constraint (BETA.FK_PM_PRODUCT_PM_BRAND1) violated - parent key not found

    at eu.solutions.a2.cdc.oracle.OraTable4SinkConnector.execUpsert(OraTable4SinkConnector.java:342)
    at eu.solutions.a2.cdc.oracle.OraTable4SinkConnector.execAndCloseCursors(OraTable4SinkConnector.java:302)
    at eu.solutions.a2.cdc.oracle.OraCdcJdbcSinkTask.put(OraCdcJdbcSinkTask.java:134)
    ... 11 more

Caused by: java.sql.BatchUpdateException: ORA-02291: integrity constraint (BETA.FK_PM_PRODUCT_PM_BRAND1) violated - parent key not found

    at oracle.jdbc.driver.OraclePreparedStatement.executeLargeBatch(OraclePreparedStatement.java:9711)
    at oracle.jdbc.driver.T4CPreparedStatement.executeLargeBatch(T4CPreparedStatement.java:1447)
    at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:9487)
    at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:237)
    at com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:128)
    at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java)
    at eu.solutions.a2.cdc.oracle.OraTable4SinkConnector.execUpsert(OraTable4SinkConnector.java:329)
    ... 13 more

[2020-10-08 20:05:09,130] ERROR WorkerSinkTask{id=oracdc-sink-oracle-0} Task is being killed and will not recover until manually restarted (org.apache.kafka.connect.runtime.WorkerTask:187)

Regards, Son

averemee-si commented 3 years ago

Hi Son,

Data integrity issues are outside of scope. Use serial producer/Source connector (i.e. a2.schema.type=debezium) and consume ordered data.

Regards, Aleksei

sonnguyen-dba commented 3 years ago

Thanks Aleksei, Regards, Son