JDBC Source connector for Sybase: com.sybase.jdbc4.jdbc.SybSQLException: ‘""’ is not a valid type name

Hi All,

I am working in a small-scale organization and POC to fetch data from Sybase ASE DB to Confluent Kafka. I am using the JDBC source connector with added “jconn4.jar” for dependency. Also, I have installed Sybase ASE latest version. When I create a JDBC connector then it is in a running state but not task is not created.
In connector logs, I checked it gave the below exception.

JSON Config:

{

"name": "jdbc_source_sybase_01",

"config": {

"connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",

"connection.url": "jdbc:sybase:Tds:XXX.XXX.XXX.:5000/pubs2",

"connection.user": "sa",

"connection.password": "XXXXXXX",

"topic.prefix": "sybase-01-",

"mode": "bulk"

}

}

Exception

ERROR Error while trying to get updated table list, ignoring and waiting for next table poll interval (io.confluent.connect.jdbc.source.TableMonitorThread:144)

com.sybase.jdbc4.jdbc.SybSQLException: '""' is not a valid type name.

at com.sybase.jdbc4.tds.Tds.processEed(Tds.java:4117)

at com.sybase.jdbc4.tds.Tds.nextResult(Tds.java:3207)

at com.sybase.jdbc4.jdbc.ResultGetter.nextResult(ResultGetter.java:78)

at com.sybase.jdbc4.jdbc.SybStatement.nextResult(SybStatement.java:293)

at com.sybase.jdbc4.jdbc.SybStatement.nextResult(SybStatement.java:275)

at com.sybase.jdbc4.jdbc.SybStatement.queryLoop(SybStatement.java:2642)

at com.sybase.jdbc4.jdbc.SybCallableStatement.executeQuery(SybCallableStatement.java:151)

at com.sybase.jdbc4.jdbc.SybDatabaseMetaData.returnResults(SybDatabaseMetaData.java:5490)

at com.sybase.jdbc4.jdbc.SybDatabaseMetaData.getTables(SybDatabaseMetaData.java:3981)

at io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.tableIds(GenericDatabaseDialect.java:417)

at io.confluent.connect.jdbc.source.TableMonitorThread.updateTables(TableMonitorThread.java:141)

at io.confluent.connect.jdbc.source.TableMonitorThread.run(TableMonitorThread.java:76)

[2021-07-14 17:30:51,095] INFO Closing connection #1 to Generic (io.confluent.connect.jdbc.util.CachedConnectionProvider:105)

[2021-07-14 17:31:01,120] ERROR [Worker clientId=connect-1, groupId=connect-cluster] Failed to reconfigure connector's tasks (jdbc_source_sybase_011), retrying after backoff: (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1388)

org.apache.kafka.connect.errors.ConnectException: Tables could not be updated quickly enough.

at io.confluent.connect.jdbc.source.TableMonitorThread.tables(TableMonitorThread.java:110)

at io.confluent.connect.jdbc.JdbcSourceConnector.taskConfigs(JdbcSourceConnector.java:149)

at org.apache.kafka.connect.runtime.Worker.connectorTaskConfigs(Worker.java:373)

at org.apache.kafka.connect.runtime.distributed.DistributedHerder.reconfigureConnector(DistributedHerder.java:1432)

at org.apache.kafka.connect.runtime.distributed.DistributedHerder.reconfigureConnectorTasksWithRetry(DistributedHerder.java:1379)

at org.apache.kafka.connect.runtime.distributed.DistributedHerder.lambda$null$19(DistributedHerder.java:1338)

at org.apache.kafka.connect.runtime.distributed.DistributedHerder.tick(DistributedHerder.java:398)

at org.apache.kafka.connect.runtime.distributed.DistributedHerder.run(DistributedHerder.java:316)

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)

Hi Rasal,

I am also facing the same issue.Have you manged to resolved this issue?

Please share me if you have any solution.

Thanks,
Senthil Kumar A

@senthilkumara : Finally I have solved this error. Mistake I was doing in JDBC URL
we do not have add external Jcon jar by default jdbc connector comes with jtds jar using this we can connect Sybase db.

This is my working config

{
“name”: “my_connector_name”,
“config”: {
“connector.class”: “io.confluent.connect.jdbc.JdbcSourceConnector”,
“connection.url”: “jdbc:jtds:sybase://XXX.XXX.XXX.XXX:4000/my_schema”,
“connection.user”: “myusername”,
“connection.password”: “mypassword”,
“topic.prefix”: “test_query_mode”,
“poll.interval.ms”: “30000”,
“mode”: “timestamp+incrementing”,
“timestamp.column.name” : “modifiedDate”,
“incrementing.column.name” : “id”,
“query”: “select query_mode_table.* from (SELECT id, name, value, modifiedDate FROM query_mode WHERE name = ‘AAA’) query_mode_table”,
“catalog.pattern”: “my_schema”
}
}

Feel free to ask me any doubt regarding this :slight_smile:

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.