Can't connect to MSSQL with ETL connector (Windows Authentication)

Hello,
I'm using the following setup:

  • sqljdbc41.jar in "C:\Program Files\Microsoft JDBC Driver 6.0 for SQL Server\sqljdbc_6.0\enu\jre7"
  • sqljdbc_auth.dll in "C:\Windows\SysWOW64"
  • Connection URL (with server and db set to my server and db)
    • jdbc:sqlserver://servername:3183;databaseName=db_name;integratedSecurity=true

and getting the following error:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4098)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3160)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:43)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3123)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7505)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2445)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1981)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
at org.neo4j.etl.rdbms.Support.testConnection(Support.java:32)
at org.neo4j.etl.rdbms.Support.main(Support.java:74)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 15 more

Any suggestions would be greatly appreciated.

Rich

Have you put the jar file in the neo4j plugins folder?
I also think you will need to use a newer driver that support JDK 11, e.g. Download - JDBC Driver for SQL Server | Microsoft Docs

Thank you for the suggestions/tips David.
I updated the SQL JDBC driver to mssql-jdbc_auth-9.4.0.x64.dll.
Can you confirm it should go in "C:\Windows\SysWOW64" ?
I also placed the corresponding jar in both the .../plugin-sources and .../plugin-versions subfolders of:
C:\Users<username>.Neo4jDesktop\relate-data
which was my best guess at the plugins folder.
Can you confirm that as well?


Not sure if I'm following your suggestions exactly.

Anyway, now I get:

"Connection failed. SQL state: 08S01, message: This driver is not configured for integrated authentication. ClientConnectionId:c96329e9-f907-4325-9c9d-f4cc6a99ecdd"

Any other guidance would be appreciated for sure.
Rich

This has been solved now.

Two problems that needed to be resolved:

  • Windows authentication hadn't actually been enabled on the SQL instance after all, so trimmed "integratedSecurity=true" from connection string.
  • Also, needed to place the windows sql server driver in "C:\Windows\System32" instead of " C:\Windows\ SysWOW64"