SQL Server sink connector error

Hope someone can help! I have the below error for kafka connect sink to sql server local db, the jar file is successfully loading when the connector starts in docker. I can see a slight difference where the mssql jar does not show as an alias for available connectors where as jd

Caused by: org.apache.kafka.connect.errors.ConnectException: java.sql.SQLException: No suitable driver found for jdbc:sqlserver
erver:

available connectors are: P
luginDesc{klass=class io.confluent.connect.jdbc.JdbcSinkConnector, name=‘io.confluent.connect.jdbc.JdbcSinkConnector’, ver
sion=‘10.7.3’, encodedVersion=10.7.3, type=sink, typeName=‘sink’, location=‘file:/usr/share/java/jars/’}, PluginDesc{klass
=class io.confluent.connect.jdbc.JdbcSourceConnector, name=‘io.confluent.connect.jdbc.JdbcSourceConnector’, version=‘10.7.
3’, encodedVersion=10.7.3, type=source, typeName=‘source’, location=‘file:/usr/share/java/jars/’}, PluginDesc{klass=class
org.apache.kafka.connect.file.FileStreamSinkConnector, name=‘org.apache.kafka.connect.file.FileStreamSinkConnector’, versi
on=‘7.4.7-ccs’, encodedVersion=7.4.7-ccs, type=sink, typeName=‘sink’, location=‘file:/usr/share/java/jars/’}, PluginDesc{k
lass=class org.apache.kafka.connect.file.FileStreamSourceConnector, name=‘org.apache.kafka.connect.file.FileStreamSourceCo
nnector’, version=‘7.4.7-ccs’, encodedVersion=7.4.7-ccs, type=source, typeName=‘source’, location=‘file:/usr/share/java/ja
rs/’}, PluginDesc{klass=class org.apache.kafka.connect.mirror.MirrorCheckpointConnector, name=‘org.apache.kafka.connect.mi
rror.MirrorCheckpointConnector’, version=‘7.4.7-ccs’, encodedVersion=7.4.7-ccs, type=source, typeName=‘source’, location=’
file:/usr/share/java/jars/'}, PluginDesc{klass=class org.apache.kafka.connect.mirror.MirrorHeartbeatConnector, name=‘org.a
pache.kafka.connect.mirror.MirrorHeartbeatConnector’, version=‘7.4.7-ccs’, encodedVersion=7.4.7-ccs, type=source, typeName
=‘source’, location=‘file:/usr/share/java/jars/’}, PluginDesc{klass=class org.apache.kafka.connect.mirror.MirrorSourceConn
ector, name=‘org.apache.kafka.connect.mirror.MirrorSourceConnector’, version=‘7.4.7-ccs’, encodedVersion=7.4.7-ccs, type=s
ource, typeName=‘source’, location=‘file:/usr/share/java/jars/’}, PluginDesc{klass=class org.apache.kafka.connect.tools.Mo
ckSinkConnector, name=‘org.apache.kafka.connect.tools.MockSinkConnector’, version=‘7.4.7-ccs’, encodedVersion=7.4.7-ccs, t
ype=sink, typeName=‘sink’, location=‘file:/usr/share/java/jars/’}, PluginDesc{klass=class org.apache.kafka.connect.tools.M
ockSourceConnector, name=‘org.apache.kafka.connect.tools.MockSourceConnector’, version=‘7.4.7-ccs’, encodedVersion=7.4.7-c
cs, type=source, typeName=‘source’, location=‘file:/usr/share/java/jars/’}, PluginDesc{klass=class org.apache.kafka.connec
t.tools.SchemaSourceConnector, name=‘org.apache.kafka.connect.tools.SchemaSourceConnector’, version=‘7.4.7-ccs’, encodedVe
rsion=7.4.7-ccs, type=source, typeName=‘source’, location=‘file:/usr/share/java/jars/’}, PluginDesc{klass=class org.apache
.kafka.connect.tools.VerifiableSinkConnector, name=‘org.apache.kafka.connect.tools.VerifiableSinkConnector’, version=‘7.4.
7-ccs’, encodedVersion=7.4.7-ccs, type=sink, typeName=‘sink’, location=‘file:/usr/share/java/jars/’}, PluginDesc{klass=cla
ss org.apache.kafka.connect.tools.VerifiableSourceConnector, name=‘org.apache.kafka.connect.tools.VerifiableSourceConnecto
r’, version=‘7.4.7-ccs’, encodedVersion=7.4.7-ccs, type=source, typeName=‘source’, location=‘file:/usr/share/java/jars/’}"

2025-12-05 11:19:12 [2025-12-05 11:19:12,183] INFO Loading plugin from: /usr/share/java/jars/mssql-jdbc-13.2.1.jar (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)
2025-12-05 11:19:12 [2025-12-05 11:19:12,919] INFO Registered loader: PluginClassLoader{pluginLocation=file:/usr/share/java/jars/mssql-jdbc-13.2.1.jar} (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)

CREATE SINK CONNECTOR MSSQL_SINK7 WITH (
‘plugin.path’ = ‘/usr/share/java,/usr/share/confluent-hub-components,/usr/share/java/jars’,
‘connector.class’ = ‘io.confluent.connect.jdbc.JdbcSinkConnector’,
‘connection.url’ = ‘jdbc:sqlserver://IPaddress:14331;databaseName=KafkaTesting;integratedSecurity=false;’,
‘connection.user’ = ‘hidden’,
‘connection.password’ = ‘hidden’,
‘table.name.format’ = ‘dbo.hiddenT’,
‘topics’ = ‘DATA’,
‘key.converter’ = ‘org.apache.kafka.connect.json.JsonConverter’,
‘key.converter.schemas.enable’ = ‘false’,
‘value.converter’ = ‘org.apache.kafka.connect.json.JsonConverter’,
‘value.converter.schemas.enable’ = ‘false’,
‘auto.create’ = ‘true’,
‘insert.mode’ = ‘insert’
);

There are a couple things to check:

  1. The JDBC sink connector includes drivers for SQL Server (docs) so I wouldn’t think that you would need to manually install the driver. Had you tried using the included driver?
  2. If you do need to use a manually installed driver, make sure that you follow the docs. E.g., they state to place the driver in the share/java/kafka-connect-jdbc/ directory as opposed to /usr/share/java/jars/

Another angle you can take is to compare your setup to the Docker-based SQL Server connector example here. This uses the included jTDS driver.

The MSSQL sink driver is now loading as is jdbc sink. I can see them loaded in the connect logs. I am connecting docker connect to local sql server. I can only think it must be a connection string issue. I can ping the server from the container using nc -zv host.docker.internal 1433

'connection.url'                      = 'jdbc:sqlserver://host.docker.internal\\SQLEXPRESS:1433 ;databaseName=KafkaTesting',

Caused by: org.apache.kafka.connect.errors.ConnectException: java.sql.SQLException: No suitable driver found for

The jar is loading in the connect logs

[2025-12-09 13:56:58,281] INFO Loading plugin from: /usr/share/confluent-hub-components/confluentinc-kafka-connect-jdbc/lib/mssql-jdbc-13.2.1.jar (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)
2025-12-09 13:56:58 [2025-12-09 13:56:58,920] INFO Registered loader: PluginClassLoader{pluginLocation=file:/usr/share/confluent-hub-components/confluentinc-kafka-connect-jdbc/lib/mssql-jdbc-13.2.1.jar} (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)

But the plugin doesnt show available at localhost:8083/connector-plugins I only have [
{
“class”: “io.confluent.connect.jdbc.JdbcSinkConnector”,
“type”: “sink”,
“version”: “10.7.3”
},
{
“class”: “org.apache.kafka.connect.file.FileStreamSinkConnector”,
“type”: “sink”,
“version”: “7.3.1-ce”
},
{
“class”: “io.confluent.connect.jdbc.JdbcSourceConnector”,
“type”: “source”,
“version”: “10.7.3”
},
{
“class”: “org.apache.kafka.connect.file.FileStreamSourceConnector”,
“type”: “source”,
“version”: “7.3.1-ce”
},
{
“class”: “org.apache.kafka.connect.mirror.MirrorCheckpointConnector”,
“type”: “source”,
“version”: “7.3.1-ce”
},
{
“class”: “org.apache.kafka.connect.mirror.MirrorHeartbeatConnector”,
“type”: “source”,
“version”: “7.3.1-ce”
},
{
“class”: “org.apache.kafka.connect.mirror.MirrorSourceConnector”,
“type”: “source”,
“version”: “7.3.1-ce”
}
]

You wouldn’t see the JDBC driver show up in this response, only connector plugins, i.e., the classes implementing org.apache.kafka.connect.sink.SinkConnector or org.apache.kafka.connect.source.SourceConnector. You might enable debug logging to see whether you see an expected Registered java.sql.Driver … message logged (relevant source code).

Rather than chase that too far, though, I would recommend backing up and trying my original suggestions: use the packaged jTDS driver, i.e., your connection string should look like jdbc:jtds:sqlserver:…. Only if unable to do that, then use a provided driver but ensure it’s located at share/java/kafka-connect-jdbc/ as documented here.

Thank you for your help. I cannot use jTDS as it is a restricted website for us. I have added the MS SQL jar to the following path and it now seems to connect just a data issue now which I am aware off

volumes: 

  - ./jars:/usr/share/java/kafka-connect-jdbc
1 Like