java.sql.SQLException: Cannot create PoolableConnectionFactory (This driver is not configured for integrated authentication

Hello All,

I I have two of my Microsoft JDBC connections faulting after upgrading from Ignition 8.1.7 to 8.1.19. There were working fine before the upgrade. Anyone run into the issue before?

java.sql.SQLException: Cannot create PoolableConnectionFactory (This driver is not configured for integrated authentication. ClientConnectionId:bf4d3ad6-a9f3-4c61-8708-b87adc557c9f)

at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:656)

at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:534)

at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:734)

at com.inductiveautomation.ignition.gateway.datasource.DatasourceImpl.getConnectionInternal(DatasourceImpl.java:300)

at com.inductiveautomation.ignition.gateway.datasource.DatasourceImpl.runTest(DatasourceImpl.java:253)

at com.inductiveautomation.ignition.gateway.datasource.DatasourceManagerImpl$FaultedDatasourceRetryer.lambda$newRetryRunnable$0(DatasourceManagerImpl.java:1096)

at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$TrackedTask.run(BasicExecutionEngine.java:587)

at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source)

at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)

at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.base/java.lang.Thread.run(Unknown Source)

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication. ClientConnectionId:bf4d3ad6-a9f3-4c61-8708-b87adc557c9f

at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:3206)

at com.microsoft.sqlserver.jdbc.AuthenticationJNI.(AuthenticationJNI.java:72)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:4015)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:85)

at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:4004)

at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7418)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:3272)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2768)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2418)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2265)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1291)

at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:881)

at org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:52)

at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:357)

at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:103)

at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:652)

… 12 more

Caused by: java.lang.UnsatisfiedLinkError: no mssql-jdbc_auth-9.2.1.x64 in java.library.path: [lib, lib\core\gateway]

at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source)

at java.base/java.lang.Runtime.loadLibrary0(Unknown Source)

at java.base/java.lang.System.loadLibrary(Unknown Source)

at com.microsoft.sqlserver.jdbc.AuthenticationJNI.(AuthenticationJNI.java:51)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:4014)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:85)

at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:4004)

at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7418)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:3272)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2768)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2418)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2265)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1291)

at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:881)

at org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:52)

at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:357)

at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:103)

at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:652)

at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:534)

at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:734)

at com.inductiveautomation.ignition.gateway.datasource.DatasourceImpl.getConnectionInternal(DatasourceImpl.java:300)

at com.inductiveautomation.ignition.gateway.datasource.DatasourceManagerImpl.getConnectionImpl(DatasourceManagerImpl.java:169)

at com.inductiveautomation.ignition.gateway.datasource.DatasourceImpl.getConnection(DatasourceImpl.java:293)

at com.inductiveautomation.ignition.gateway.tags.actors.factories.value.db.DBTagActorFactory$DBTagActor.getConnection(DBTagActorFactory.java:277)

at com.inductiveautomation.ignition.gateway.tags.actors.factories.value.db.DBTagActorFactory$DBTagActor.runInternal(DBTagActorFactory.java:226)

at com.inductiveautomation.ignition.gateway.tags.actors.factories.value.AbstractExpressionActor.run(AbstractExpressionActor.java:145)

at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

at java.base/java.util.concurrent.FutureTask.run(Unknown Source)

… 4 more

8.1.19 (b2022072711)

Azul Systems, Inc. 11.0.15

Integrated auth was deliberately disabled due to a security hole recently found in Microsoft’s stack. Not yet plugged. There’s a way to enable it anyways, IIRC, but I don’t have the link to a forum topic handy.

Thanks for the quick response. So is there a way to reconfigure the database connection and not use integrated authentication?

image

Most of my clients use database user accounts instead of integrated security. You’ll need to set that up in the DB, then turn off integrated security.

I’ll give that a try, thanks for your help!

You mixing this up with the AD SSO thing?

Oooo! Maybe. /:

@kwabena_hobbs this seems to be your underlying issue.

I tried copying the file to the gateway directory.

1 Like

Kind of looks like you have an extra space after “x64” in that filename.

You also have some file name extensions hidden… make sure the filename is correct.

Did you ever resolve this? I just did a fresh install of 8.1.19. Ran into the same error you had. Downloaded the mssql-jbdc_auth-9.2.1.x64.dll from microsoft's webiste, put it in the folder, restarted my Ignition service but I am still get the This driver is not configured for integrated authentication error.

Edit: It was my fault. I needed 9.4.0

Post the full stack trace you're getting.

You may also need to make sure the JDBC driver version and DLL version match up.

Yea was my own fault. I searched for the error, found this thread and assumed I too needed 9.2.1. Looking at the full error stack I actually needed msssql-jbdc_auth-9.4.0.x64.dll. Downloading that and putting it under lib/core/Gateway has solved my issue.

My issue resolved by this guide.

I don't see the guide. Is the link missing?

you need to copy the mssql-jdbc_auth to C:\Program Files\Inductive Automation\Ignition\lib\core\gateway.

The .dll file it depends the version of your jdbc driver.

2 Likes

Where do you copy it from?

1 Like

Did you ever get this answered? Its in the repo zip file.

(Connecting to Microsoft SQL Server - Ignition User Manual 8.1 - Ignition Documentation)

Releases · microsoft/mssql-jdbc (github.com)

Hi All,

I am trying to connect to a db via windows authentication getting the error and have tried copying the 'mssql-jdbc_auth-12.4.2.x64.dll' file over into each of the following folders without success:

  • C:\Program Files\Inductive Automation\Ignition\lib\ (this is what the Ignition docs say to put it)
  • C:\Program Files\Inductive Automation\Ignition\lib\core\gateway (this is where some people here say to put it)
  • C:\Windows\System32 (this is where another post suggested to put it)

I have restarted the Ignition service after each of these attempts too...

I have verified that I can connect to these databases with the same credentials using SSMS.

Any ideas?