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