Ignition Crash (Fatal Error) with MSSQL Integrated Security

In a past I had an issue with Ignition 8.1.11 version with integrated security but I found move around which I specified here → SQL Server Database Connection with Integrated Security - #3 by y.parashchuk

Today i need to configure integrated security using Ignition 8.1.19. I used same solution which was used for 8.1.11 but it cause Ignition Fatal error - it just cannot load and restarting all the time. Adding log files to the topic. I used 2 different JDBC driver v9.4.0 and latest v11.2.0 - but result are same.
hs_err_pid4972JDBCv9_4.log (208.2 KB)
hs_err_pid4908_JDBCv11_2.log (209.7 KB)

Information about VM which I used to configure all you can find in log files.
SQL server version is 13.0.6300.2
Also I tested with SQL server version 15.0.2000.5 - same result

So the steps which i did:

  1. Download required JDBC driver
  2. Get file → mssql-jdbc_auth-9.4.0.x64.dll in case of v9.4.0, or → mssql-jdbc_auth-11.2.0.x64.dll
  3. Placing file to the C:\Program Files\Inductive Automation\Ignition\lib
  4. Renaming file to sqljdbc_auth.dll
  5. Adding user identification for Ignition service
  6. Restarting service.

After this 6 steps Ignition going to cycle rebut state, doing a rebut, showing log page for 3-5 seconds and going to another rebut.

I tested all steps using v9.4.0 and v11.2.0 NOT simultaneously. First did all with version 11.2.0 loaded the log files after error, then deleted file sqljdbc.dll, restarted server and all returned to normal (but without integrated security).
Then did all steps with v11.2.0…

Contact me if you will need more info about this case to debug and solve an issue.
I can upload .mdmp files if it will be required.

Pretty sure that’s wrong. Place them in the jdbc folder with the rest of the drivers.

I thought that with these newer versions of the JDBC driver that renaming the DLL was no longer necessary.

Can you make sure that you don’t have any old versions of the DLL, whether renamed or not, in the lib or lib/core/gateway folders that may be getting loaded instead of the one that matches the. JDBC driver version?

Thanks for your reply.
Which folder are you referencing to?
I took all from Ignition manual

Thank you for the reply.
That’s what I have in those 2 folders which you referencing. (After I removed sqljdbc_auth.dll from C:\Program Files\Inductive Automation\Ignition\lib to stop Ignition Fatal Error).

I will appreciate any help with this. I need to configure integrated security and i really don’t want to use 8.1.11 when 8.1.19 present.

There may not be a quick solution to this. You’ll probably need to go through support, we’ll end up trying to replicate or collect your crash dumps, and then we’ll submit them to Azul or MS to get fixed.

When you try to enable integrated security without the DLL present what filename does it say it’s looking for in the logs?

edit: not sure this really matters, unless you mixed up DLLs you appear to have successfully loaded the DLL with each of the JDBC driver versions. You wouldn’t have been able to get as far as a crash if the DLL hadn’t ever been located and loaded.

I think you may have either mixed up DLLs or not successfully upgraded JDBC drivers…

Both 9.4.0 and 11.2.0 try to load the DLL as it is named from Microsoft, not the generic renamed DLL like older versions of the JDBC driver did.

Yet both your crash dumps reference C:\Program Files\Inductive Automation\Ignition\lib\sqljdbc_auth.dll as the loaded DLL, so something is funny here.

It’s not looking for files as i see.
DB Error .txt (3.0 KB)

So you want that i just placed file mssql-jdbc_auth-9.4.0.x64.dll to the folder C:\Program Files\Inductive Automation\Ignition\lib without renaming?

Azul or MS if the issue at their side.
But how it could work with Ignition 8.1.11 with this driver mssql-jdbc_auth-9.4.0.x64.dll
and when I doing the same with 8.1.19 it giving fatal error?.

I would have thought that error means you haven’t enabled integrated security. In your other post there are errors about it searching for the DLL file.

I assuming you referencing to 8.1.11. Yep if just keep renamed file it trying to find the source name. But if place 2 simulate file:
1 with old name
and same file but renamed as Ignition document required 8.1.11 works just fine.

With 8.1.19 different case…

The document you reference explicitly states that you only rename it for older versions of the JDBC driver. It’s step 4 in the screenshot you posted.

I don’t know if any of this matters, but it’s confusing things here and if you’re going to provide useful crash dumps I need to be sure you’re loading the correct DLL.

I am fairly certain you have NOT successfully upgraded your JDBC driver in either case.

The stack from the crash dumps you provided reference classes that do not exist in these newer versions of the JDBC driver, and in both dumps it loaded the DLL by its old name (sqljdbc_auth.dll), which is not how either of the newer JDBC driver versions work.

Can you provide a sequence of how to update it?

Usually following these directions is enough, but since they’ve started versioning their JAR file names it’s possible you need to look at the $IGNITION/user-lib/jdbc folder and delete old versions of the JDBC JAR files. If there are multiple versions of the SQLServer JDBC JAR in there, including the old ones, that could be what’s going wrong.

You probably want to restart the gateway after upgrading and deleting any files as well.

Kevin thanks.

What I did to fix an issue.

JDBC driver version is 9.4.0.x64

  1. Upgraded JDBC driver using this → JDBC Drivers and Translators - Ignition User Manual 8.1 - Ignition Documentation
    File which I used for upgrade was mssql-jdbc-9.4.0.jre11.jar
  2. Placed file mssql-jdbc_auth-9.4.0.x64.dll to the C:\Program Files\Inductive Automation\Ignition\lib
  3. Restarted Ignition service
  4. DB connection became valid.

Thanks for your help.
So it worked out without file renaming (to sqljdbc_auth.dll), but it required driver upgrade using gateway - which i didn’t know…