averemee-si/oracdc

Unable to start connector

ramibahrouni opened this issue · 4 comments

When trying to start the connector an error occurred about casting an EmptyList to String.
Full stacktrace of kafka connect:

`[2023-02-15 09:16:08,753] INFO


/\ |__ \ ___ _ __ __ _ ___ | | ___
//\ ) | / _ | '/ |/ __/ _ |/ __|
/ _ / __/ | (
) | | | (
| | (| (| | (

_/ _/| _/|| _,_|__,|__|

(solutions.a2.cdc.oracle.OraCdcLogMinerConnector)
[2023-02-15 09:16:08,753] INFO Starting oracdc 'OraCdcLogMinerConnectorConnector_0' logminer source connector (solutions.a2.cdc.oracle.OraCdcLogMinerConnector)
[2023-02-15 09:16:08,753] INFO OraCdcSourceConnectorConfig values:
__a2.internal.dg4rac.thread = []
__a2.internal.rac.urls = []
a2.archived.log.catalog = solutions.a2.cdc.oracle.OraCdcV$ArchivedLogImpl
a2.batch.size = 1000
a2.connection.backoff = 30000
a2.dictionary.file =
a2.distributed.activate = false
a2.distributed.jdbc.url =
a2.distributed.target.host =
a2.distributed.target.port = 21521
a2.distributed.wallet.location =
a2.exclude = [other_table]
a2.fetch.size = 32
a2.first.change = 0
a2.include = [mytable]
a2.initial.load = IGNORE
a2.jdbc.password = [hidden]
a2.jdbc.url = jdbc:oracle:thin:@oracle:1521:sid
a2.jdbc.username = logmineruser
a2.kafka.topic = mytable
a2.lob.transformation.class = solutions.a2.cdc.oracle.data.OraCdcDefaultLobTransformationsImpl
a2.logminer.trace = false
a2.oracdc.schemas = false
a2.persistent.state.file =
a2.poll.interval = 1000
a2.process.lobs = true
a2.redo.count = 1
a2.redo.size = 0
a2.resiliency.type = fault-tolerant
a2.schema.type = kafka
a2.standby.activate = false
a2.standby.jdbc.url =
a2.standby.wallet.location =
a2.table.list.style = static
a2.tmpdir =
a2.topic.name.delimiter = _
a2.topic.name.style = TABLE
a2.topic.partition = 0
a2.topic.prefix =
a2.use.rac = false
a2.wallet.location =
(solutions.a2.cdc.oracle.OraCdcSourceConnectorConfig)
[2023-02-15 09:16:08,753] ERROR WorkerConnector{id=OraCdcLogMinerConnectorConnector_0} Error while starting connector (org.apache.kafka.connect.runtime.WorkerConnector)
java.lang.ClassCastException: class java.util.Collections$EmptyList cannot be cast to class java.lang.String (java.util.Collections$EmptyList and java.lang.String are in module java.base of loader 'bootstrap')
at solutions.a2.cdc.oracle.OraCdcLogMinerConnector.lambda$start$0(OraCdcLogMinerConnector.java:95)
at java.base/java.util.HashMap.forEach(HashMap.java:1337)
at solutions.a2.cdc.oracle.OraCdcLogMinerConnector.start(OraCdcLogMinerConnector.java:79)
at org.apache.kafka.connect.runtime.WorkerConnector.doStart(WorkerConnector.java:194)
at org.apache.kafka.connect.runtime.WorkerConnector.start(WorkerConnector.java:219)
at org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:364)
at org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:347)
at org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:147)
at org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:124)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
[2023-02-15 09:16:08,755] ERROR [Worker clientId=connect-1, groupId=compose-connect-group] Failed to start connector 'OraCdcLogMinerConnectorConnector_0' (org.apache.kafka.connect.runtime.distributed.DistributedHerder)
org.apache.kafka.connect.errors.ConnectException: Failed to start connector: OraCdcLogMinerConnectorConnector_0
at org.apache.kafka.connect.runtime.distributed.DistributedHerder.lambda$startConnector$36(DistributedHerder.java:1804)
at org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:350)
at org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:147)
at org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:124)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.apache.kafka.connect.errors.ConnectException: Failed to transition connector OraCdcLogMinerConnectorConnector_0 to state STARTED
... 8 more
Caused by: java.lang.ClassCastException: class java.util.Collections$EmptyList cannot be cast to class java.lang.String (java.util.Collections$EmptyList and java.lang.String are in module java.base of loader 'bootstrap')
at solutions.a2.cdc.oracle.OraCdcLogMinerConnector.lambda$start$0(OraCdcLogMinerConnector.java:95)
at java.base/java.util.HashMap.forEach(HashMap.java:1337)
at solutions.a2.cdc.oracle.OraCdcLogMinerConnector.start(OraCdcLogMinerConnector.java:79)
at org.apache.kafka.connect.runtime.WorkerConnector.doStart(WorkerConnector.java:194)
at org.apache.kafka.connect.runtime.WorkerConnector.start(WorkerConnector.java:219)
at org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:364)
at org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:347)
... 7 more
`

Connector's configuration:

{
  "name": "OraCdcLogMinerConnectorConnector_0",
  "config": {
    "value.converter.schema.registry.url": "http://schema-registry:8081",
    "key.converter.schema.registry.url": "http://schema-registry:8081",
    "name": "OraCdcLogMinerConnectorConnector_0",
    "connector.class": "solutions.a2.cdc.oracle.OraCdcLogMinerConnector",
    "tasks.max": "1",
    "key.converter": "io.confluent.connect.avro.AvroConverter",
    "value.converter": "io.confluent.connect.avro.AvroConverter",
    "a2.jdbc.url": "jdbc:oracle:thin:@oracle:1521:sid",
    "a2.jdbc.username": "logmineruser",
    "a2.jdbc.password": "***************",
    "a2.kafka.topic": "mytable",
    "a2.exclude": "other_table",
    "a2.include": "mytable",
    "a2.process.lobs": "true"
  }
}

Hi Rami,

Working on it.

Regards,
Aleksei

DG4_RAC internal parameter is ignored (3cc9d9e)

Hi Rami,

Please upload latest code from GitHub and retest the issue.

Thanks!
Aleksei

Hi Aleksei,

Issue is fixed.

Thanks,
Rami