You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@kafka.apache.org by Manoj Murumkar <ma...@gmail.com> on 2017/06/26 21:16:31 UTC
JdbcSourceConnector connector configuration is invalid
Hi,
We are trying to pull some data from HANA into Kafka. When run in
Stand-alone mode, the following configuration works as expected (I have SAP
jar in right place).
name=hana-jdbc
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=5
connection.url=jdbc:sap://<HOST>:30015/?databaseName=<DB>
connection.user=<USER>
connection.password=*********
query=select\
MANDT,VBELN,VPOSN,VLAUFZ,VLAUEZ,VLAUFK,VINSDAT,VABNDAT,VBEGDAT,VUNTDAT,VKUESCH,VAKTSCH,VEINDAT,VWUNDAT,VKUEPAR,VKUEGRU,VENDDAT,VBELKUE,VBEDKUE,VBEGREG,VVORZEIT,VVOREIN,VDEMDAT,VASDA,WIMID,VASDR,VENDREG,ZDSP_SET_START,\TO_BIGINT\(ZZTIMESTAMP\)\
AS\ ZZTIMESTAMP\ from\ <TABLE>
mode=incrementing
incrementing.column.name=ZZTIMESTAMP
topic.prefix=hana_veda
batch.max.rows=100
poll.interval.ms=1000
table.poll.interval.ms=10000
Same configuration doesn't work when I am trying to use connector in
distributed mode. It keeps throwing {"error_code":400,"message":"Connector
configuration is invalid (use the endpoint
`/{connectorType}/config/validate` to get a full list of errors)"}.
Following is what I am trying to POST:
{
"name" : "hdfs-source-hana_veda",
"config" : {
"connector.class" : "io.confluent.connect.jdbc.JdbcSourceConnector",
"tasks.max" : 10,
"topic.prefix" : "hana_veda_new2",
"connection.url" : "jdbc:sap://<HOST>:30015/?databaseName=<DB>",
"connection.user" : "<USER>",
"connection.password" : "******",
"query" : "select
MANDT,VBELN,VPOSN,VLAUFZ,VLAUEZ,VLAUFK,VINSDAT,VABNDAT,VBEGDAT,VUNTDAT,VKUESCH,VAKTSCH,VEINDAT,VWUNDAT,VKUEPAR,VKUEGRU,VENDDAT,VBELKUE,VBEDKUE,VBEGREG,VVORZEIT,VVOREIN,VDEMDAT,VASDA,WIMID,VASDR,VENDREG,ZDSP_SET_START,TO_BIGINT(ZZTIMESTAMP)
AS ZZTIMESTAMP from REPLICN_ECC.VEDA",
"mode" : "incrementing",
"incrementing.column.name" : "ZZTIMESTAMP",
"batch.max.rows" : 1000,
"poll.interval.ms" : 1000,
"table.poll.interval.ms" : 1000
}
}
2 questions:
1. What am I doing wrong in distributed connector config? I am just
enclosing entire query in quotes, so not using any escape characters. I
tried using those, but saw errors in REST logs.
2. How do I use REST to validate the config? I am using the endpoint
JdbcSourceConnector/config/validate, nothing happens. When I use
connector-plugins/JdbcSourceConnector/config/validate endpoint, I see this
in connector logs:
javax.servlet.ServletException:
org.glassfish.jersey.server.ContainerException:
com.fasterxml.jackson.databind.JsonMappingExceptio
n: Can not deserialize instance of java.lang.String out of START_OBJECT
token
at [Source:
org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream@69a62267;
line: 1, column: 41]
(through reference chain: java.util.LinkedHashMap["config"])
at
org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:489)
at
org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)
Thanks,
Manoj