kafka-connect-jdbc
kafka-connect-jdbc copied to clipboard
Teradata Sink failed to get initialized
Hi,
I have installed kafka-connect-jdbc connector from confluent hub, version 10.2.0.
I have also installed the latest teradata jdbc 4 driver. and put it in the path /usr/share/confluent-hub-components/confluentinc-kafka-connect-jdbc/lib
When i run a job with the kafka-connect-jdbc-sink connector, with teradata database configured in the jdbc url,
I get the following error during the job initialization.
021-06-02 10:08:10,075] ERROR WorkerSinkTask{id=jdbc-td-job-0} Task threw an uncaught and unrecoverable exception. Task is being killed and will not recover until manually restarted. Error: oracle/i18n/util/LocaleMapper (org.apache.kafka.connect.runtime.WorkerSinkTask)
java.lang.NoClassDefFoundError: oracle/i18n/util/LocaleMapper
at oracle.xml.parser.v2.XMLReader.setEncoding(XMLReader.java:996)
at oracle.xml.parser.v2.XMLReader.checkXMLDecl(XMLReader.java:3576)
at oracle.xml.parser.v2.XMLReader.pushXMLReader(XMLReader.java:586)
at oracle.xml.parser.v2.XMLReader.pushXMLReader(XMLReader.java:290)
at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:244)
at oracle.xml.jaxp.JXDocumentBuilder.parse(JXDocumentBuilder.java:176)
at oracle.xml.jaxp.JXDocumentBuilder.parse(JXDocumentBuilder.java:132)
at com.teradata.tdgss.jtdgss.TdgssParseXml.parse(TdgssParseXml.java:664)
at com.teradata.tdgss.jtdgss.TdgssConfigApi.<init>(TdgssConfigApi.java:95)
at com.teradata.tdgss.jtdgss.TdgssConfigApi.<clinit>(TdgssConfigApi.java:49)
at com.teradata.tdgss.jtdgss.TdgssManager.<init>(TdgssManager.java:66)
at com.teradata.tdgss.jtdgss.TdgssManager.<clinit>(TdgssManager.java:28)
at com.teradata.jdbc.jdbc.GenericTeraEncrypt.getGSSM(GenericTeraEncrypt.java:577)
at com.teradata.jdbc.jdbc.GenericTeraEncrypt.<init>(GenericTeraEncrypt.java:116)
at com.teradata.jdbc.jdbc.GenericTeradataConnection.<init>(GenericTeradataConnection.java:108)
at com.teradata.jdbc.jdbc_4.TDSession.<init>(TDSession.java:187)
at com.teradata.jdbc.jdk6.JDK6_SQL_Connection.<init>(JDK6_SQL_Connection.java:36)
at com.teradata.jdbc.jdk6.JDK6ConnectionFactory.constructSQLConnection(JDK6ConnectionFactory.java:25)
at com.teradata.jdbc.jdbc.ConnectionFactory.createConnection(ConnectionFactory.java:181)
at com.teradata.jdbc.jdbc.ConnectionFactory.createConnection(ConnectionFactory.java:171)
at com.teradata.jdbc.TeraDriver.doConnect(TeraDriver.java:236)
at com.teradata.jdbc.TeraDriver.connect(TeraDriver.java:162)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:189)
at io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.getConnection(GenericDatabaseDialect.java:234)
at io.confluent.connect.jdbc.util.CachedConnectionProvider.newConnection(CachedConnectionProvider.java:83)
at io.confluent.connect.jdbc.util.CachedConnectionProvider.getConnection(CachedConnectionProvider.java:52)
at io.confluent.connect.jdbc.sink.JdbcDbWriter.write(JdbcDbWriter.java:64)
at io.confluent.connect.jdbc.sink.JdbcSinkTask.put(JdbcSinkTask.java:84)
at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:586)
at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:329)
at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:232)
at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:201)
at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:185)
at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:234)
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:834)
Caused by: java.lang.ClassNotFoundException: oracle.i18n.util.LocaleMapper
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
at org.apache.kafka.connect.runtime.isolation.PluginClassLoader.loadClass(PluginClassLoader.java:104)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 40 more
From this what i think is happening is following:
Kafka connect is picking up the teradata jdbc driver jar.
The teradata jdbc driver is having some dependency on oracle.i18n.util.LocalMapper
But that class is not available in the jar orai18n-19.7.0.0.jar
found in the kafka-connect-jdbc connector.
Can some one help me to understand what is going wrong and how to solve this?
Regards, Harish.
Did you ever fix this issue? Got the same error...