Date Posted:
Product: TIBCO Spotfire®
Product: TIBCO Spotfire®
Problem:
Upgrade to TIBCO Spotfire server 10.3.0 or 10.3.1 is failing with "no sqljdbc_auth in java.library.path" error when using integrated authentication with Spotfire Database
Solution:
If the the TIBCO Spotfire Server application database is using integrated authentication (see Setting up the Spotfire database (SQL Server with Integrated Windows authentication)) then the upgrade to 10.3.0 or 10.3.1 fails with the error message "Unable to connect to the database: This driver is not configured for integrated authentication". See the full stack trace below from details.log:
ERROR 2019-06-25T15:29:28,027 upgrade.swing.DatabaseConnectionStepView: Internal error during database connection. com.spotfire.server.tools.DatabaseConnectionException: Unable to connect to the database: This driver is not configured for integrated authentication. ClientConnectionId:77f1378c-9a86-431e-a9dd-3c447137e282 at com.spotfire.server.tools.ToolsUtilities.createDatabaseConnection(ToolsUtilities.java:196) ~[?:?] at com.spotfire.server.tools.upgrade.steps.DatabaseConnectionStep.prepareUpdate(DatabaseConnectionStep.java:62) ~[?:?] at com.spotfire.server.tools.upgrade.swing.DatabaseConnectionStepView.updateModel(DatabaseConnectionStepView.java:223) [?:?] at com.spotfire.server.tools.wizards.swing.AbstractInstallerWindow$NextActionListener.actionPerformed(AbstractInstallerWindow.java:527) [?:?] at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) [?:1.8.0_212] at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) [?:1.8.0_212] at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) [?:1.8.0_212] at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) [?:1.8.0_212] at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) [?:1.8.0_212] at java.awt.Component.processMouseEvent(Component.java:6539) [?:1.8.0_212] at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) [?:1.8.0_212] at java.awt.Component.processEvent(Component.java:6304) [?:1.8.0_212] at java.awt.Container.processEvent(Container.java:2239) [?:1.8.0_212] at java.awt.Component.dispatchEventImpl(Component.java:4889) [?:1.8.0_212] at java.awt.Container.dispatchEventImpl(Container.java:2297) [?:1.8.0_212] at java.awt.Component.dispatchEvent(Component.java:4711) [?:1.8.0_212] at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904) [?:1.8.0_212] at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535) [?:1.8.0_212] at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476) [?:1.8.0_212] at java.awt.Container.dispatchEventImpl(Container.java:2283) [?:1.8.0_212] at java.awt.Window.dispatchEventImpl(Window.java:2746) [?:1.8.0_212] at java.awt.Component.dispatchEvent(Component.java:4711) [?:1.8.0_212] at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760) [?:1.8.0_212] at java.awt.EventQueue.access$500(EventQueue.java:97) [?:1.8.0_212] at java.awt.EventQueue$3.run(EventQueue.java:709) [?:1.8.0_212] at java.awt.EventQueue$3.run(EventQueue.java:703) [?:1.8.0_212] at java.security.AccessController.doPrivileged(Native Method) [?:1.8.0_212] at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) [?:1.8.0_212] at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84) [?:1.8.0_212] at java.awt.EventQueue$4.run(EventQueue.java:733) [?:1.8.0_212] at java.awt.EventQueue$4.run(EventQueue.java:731) [?:1.8.0_212] at java.security.AccessController.doPrivileged(Native Method) [?:1.8.0_212] at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) [?:1.8.0_212] at java.awt.EventQueue.dispatchEvent(EventQueue.java:730) [?:1.8.0_212] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) [?:1.8.0_212] at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) [?:1.8.0_212] at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) [?:1.8.0_212] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:1.8.0_212] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) [?:1.8.0_212] at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) [?:1.8.0_212] Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication. ClientConnectionId:77f1378c-9a86-431e-a9dd-3c447137e282 at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2826) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.AuthenticationJNI.<init>(AuthenticationJNI.java:73) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3550) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:81) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3541) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7240) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2869) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2395) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2042) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1889) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1120) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:700) ~[sqljdbc4.jar:?] at com.spotfire.server.util.sql.DriverWrapper.connect(DriverWrapper.java:69) ~[?:?] at com.spotfire.server.util.sql.PoolingDataSource.createStandardConnection(PoolingDataSource.java:1089) ~[?:?] at com.spotfire.server.util.sql.PoolingDataSource.createStandardConnection(PoolingDataSource.java:1075) ~[?:?] at com.spotfire.server.util.sql.PoolingDataSource.createConnection(PoolingDataSource.java:1071) ~[?:?] at com.spotfire.server.util.sql.PoolingDataSource.createAndInitConnection(PoolingDataSource.java:869) ~[?:?] at com.spotfire.server.util.sql.PoolingDataSource.getConnection(PoolingDataSource.java:722) ~[?:?] at com.spotfire.server.tools.ToolsUtilities.createDatabaseConnection(ToolsUtilities.java:192) ~[?:?] ... 39 more Caused by: java.lang.UnsatisfiedLinkError: no sqljdbc_auth in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) ~[?:1.8.0_212] at java.lang.Runtime.loadLibrary0(Runtime.java:870) ~[?:1.8.0_212] at java.lang.System.loadLibrary(System.java:1122) ~[?:1.8.0_212] at com.microsoft.sqlserver.jdbc.AuthenticationJNI.<clinit>(AuthenticationJNI.java:52) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3549) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:81) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3541) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7240) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2869) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2395) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2042) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1889) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1120) ~[sqljdbc4.jar:?] at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:700) ~[sqljdbc4.jar:?] at com.spotfire.server.util.sql.DriverWrapper.connect(DriverWrapper.java:69) ~[?:?] at com.spotfire.server.util.sql.PoolingDataSource.createStandardConnection(PoolingDataSource.java:1089) ~[?:?] at com.spotfire.server.util.sql.PoolingDataSource.createStandardConnection(PoolingDataSource.java:1075) ~[?:?] at com.spotfire.server.util.sql.PoolingDataSource.createConnection(PoolingDataSource.java:1071) ~[?:?] at com.spotfire.server.util.sql.PoolingDataSource.createAndInitConnection(PoolingDataSource.java:869) ~[?:?] at com.spotfire.server.util.sql.PoolingDataSource.getConnection(PoolingDataSource.java:722) ~[?:?] at com.spotfire.server.tools.ToolsUtilities.createDatabaseConnection(ToolsUtillities.java:192) ~[?:?] ... 39 more
This is a known defect which has been resolved in TIBCO Spotfire Server 10.3.2 and higher.
To resolve, upgrade to version 10.3.2 or higher. Note: To workaround this issue for TIBCO Spotfire Server 10.3.0 and 10.3.1, copy the sqljdbc_auth.dll file from the previous installation folder (<server installation-folder>/jdk/jre/bin) or (<server installation-folder>/ tomcat/bin) to the newly installed TIBCO Spotfire Server version (<server installation-folder>/jdk/jre/bin) folder and then follow the upgrade procedure. Doc: Setting up the Spotfire database (SQL Server with Integrated Windows authentication)
Comments
0 comments
Article is closed for comments.