averemee-si / oracdc

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

I have issue with some rows null in lob's col. #6

Closed sonnguyen-dba closed 3 years ago

sonnguyen-dba commented 3 years ago

Hi Aleksej, I have issue with some rows null in lob's col.

[2020-10-29 18:28:14,530] ERROR WorkerSourceTask{id=oracdc-oracle-oracle-webcap-0} Task threw an uncaught and unrecoverable exception (org.apache.kafka.connect.runtime.WorkerTask:186) org.apache.kafka.connect.errors.ConnectException: Tolerance exceeded in error handler at org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndHandleError(RetryWithToleranceOperator.java:178) at org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execute(RetryWithToleranceOperator.java:104) at org.apache.kafka.connect.runtime.WorkerSourceTask.convertTransformedRecord(WorkerSourceTask.java:297) at org.apache.kafka.connect.runtime.WorkerSourceTask.sendRecords(WorkerSourceTask.java:323) at org.apache.kafka.connect.runtime.WorkerSourceTask.execute(WorkerSourceTask.java:247) 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.DataException: Conversion error: null value for field that is required and has no default value at org.apache.kafka.connect.json.JsonConverter.convertToJson(JsonConverter.java:611) at org.apache.kafka.connect.json.JsonConverter.convertToJson(JsonConverter.java:704) at org.apache.kafka.connect.json.JsonConverter.convertToJsonWithEnvelope(JsonConverter.java:592) at org.apache.kafka.connect.json.JsonConverter.fromConnectData(JsonConverter.java:346) at org.apache.kafka.connect.storage.Converter.fromConnectData(Converter.java:63) at org.apache.kafka.connect.runtime.WorkerSourceTask.lambda$convertTransformedRecord$2(WorkerSourceTask.java:297) at org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndRetry(RetryWithToleranceOperator.java:128) at org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndHandleError(RetryWithToleranceOperator.java:162) ... 11 more [2020-10-29 18:28:14,532] ERROR WorkerSourceTask{id=oracdc-oracle-oracle-webcap-0} Task is being killed and will not recover until manually restarted (org.apache.kafka.connect.runtime.WorkerTask:187)

averemee-si commented 3 years ago

Hi Son,

This can be related to how LogMiner generate redo statements for tables with LOB columns, i.e. instead of insert LogMiner generates insert with EMPTY_BLOB()/EMPTY_CLOB() call and then update with real LOB value (if in-row). Could you please add to oracdc-oracle-oracle-webcap-0 connector configuration:

errors.tolerance=all 
errors.log.enable=true
errors.log.include.messages=true

re-run and connector and update this issue with diagnostic output.

Best regards, Aleksej

sonnguyen-dba commented 3 years ago

Thanks Aleksej, I just add errors.tolerance=all errors.log.enable=true errors.log.include.messages=true and re-run don't output error again. initload working

Regards, Son

averemee-si commented 3 years ago

Hi Son,

Mea culpa - you need to set errors.tolerance to NONE, i.e.

errors.tolerance=all
errors.log.enable=true
errors.log.include.messages=true

Mille pardon!

Best regards, Aleksej

sonnguyen-dba commented 3 years ago

Hi Aleksej, I did set errors.tolerance to NONE, still working good Regards, Son