Synchrony Failed to Load the sqljdbc_auth.dll Cause no sqljdbc_auth in java.library.path
プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Fisheye および Crucible は除く
問題
When setting Synchrony to use the Windows integrated authentication to the database, Synchrony will try to find the sqljdbc_auth.dll library, but it won't find the file even though the java.library.path is set correctly.
The following appears in the synchrony.log
2018-04-09 15:49:18,549 DEBUG [288:StdErrHandler [C:\Program Files\Atlassian\Confluence\jre\bin\java.exe]] Apr 09, 2018 3:49:18 PM com.microsoft.sqlserver.jdbc.AuthenticationJNI <clinit>
2018-04-09 15:49:18,549 DEBUG [288:StdErrHandler [C:\Program Files\Atlassian\Confluence\jre\bin\java.exe]] WARNING: Failed to load the sqljdbc_auth.dll cause : no sqljdbc_auth in java.library.path
2018-04-09 15:57:07,801 DEBUG [289:StdOutHandler [C:\Program Files\Atlassian\Confluence\jre\bin\java.exe]] Caused by: java.lang.UnsatisfiedLinkError: no sqljdbc_auth in java.library.path
診断
環境
- The application is using the Windows integrated authentication to connect to the database.
Diagnostic Steps
The administrator has already added the path of the DLL in the <confluence-home>/synchrony-args.properties:
java.library.path=C:\Microsoft JDBC Driver 6.2 for SQL Server\sqljdbc_6.2\enu\auth\x64
原因
The issue happens because we need to escape the backslash in the java.library.path added to the synchrony-args.properties file.
ソリューション
The resolution is to escape the path using two backslashes. For example, the path mentioned in the diagnosis will look like this:
java.library.path=C:\\Microsoft JDBC Driver 6.2 for SQL Server\\sqljdbc_6.2\\enu\\auth\\x64
Here are the steps to fix it in this case:
- Edit the file <confluence-home>/synchrony-args.properties to escape the backslashes from the path as in the example above
- Click on Restart Synchrony from the Collaborative Editing management page to load the changes
- Repeat the steps on all nodes if running in a clustered environment