Hello
I just upgraded from Ignition 3.1.40 to Ignition 3.1.41, and noticed that the JDBC Auth drivers I installed (mssql-jdbc_auth-9.4.0.x64
, for Microsoft Integrated Authentication
) have been deleted. Would it be possible to ignore the deletion of those files in a gateway upgrade?
Or at least, to include a note on the documentation page. This statement is not very accurate:
When upgrading Ignition, JDBC drivers are not modified during the upgrade process.
Thanks
I'm pretty confident that's not expected/intended. Could you engage with our support department officially (https://support.inductiveautomation.com) so they can collect more information from you on the state of your gateway prior to the upgrade and attempt to reproduce this issue?
This wouldn't happen to be on a Docker container, would it? Unfortunately, JDBC drivers in 8.1.x are currently installed outside of the data
folder that you'd attach a volume to for your Docker container. As a result, container recreation (which happens when you remove the 8.1.40 container and launch an 8.1.41 container) will revert back to the base image contents anything outside of that data
volume that you carry along.
The workaround for this right now would be to build+run your own derived image that bakes in the modified JDBC drivers into the image.
2 Likes
Hello,
It was done in a brand new Windows Server 2022. I am pretty sure they can reproduce this easily since it is a new gateway with nothing much than a few database connections.
I downloaded the .zip from the Microsoft page, extracted and renamed the .dll, and located it in the appropriate folder. I also located the same original .dll in the same folder, with its original name, just in case.
Upgrade was done just by downloading the new .exe and pressing next, next, next...
Regards
1 Like
Did the JDBC driver JAR file disappear or just the DLL? Which folder did you put it in?
Unfortunately the lib/core/*
folders do get wiped and replaced on upgrade, but the folder that holds the JDBC driver JAR files should not.
It's the authentication .dll only, the one required for Microsoft Integration Authentication
to work.
C:\Program Files\Inductive Automation\Ignition\lib\core\gateway
I think you can also use the base lib
folder... maybe that one doesn't get deleted on upgrade.
This is otherwise the expected behavior on an upgrade and if neither folder works you'll have to make note that this is part of your upgrade procedure. I thought that our docs already mentioned something like this.
Huh, that's unfortunate. It looks like we made a change at some point that allows arbitrary .dll names, so you don't have to rename things...but didn't make any change to attempt to grab those other .dlls during an upgrade.
If you name your .dll sqljdbc_auth.dll
exactly, I'm pretty sure it will persist upon upgrade.
I don't think I can decide in which folder to locate the .dll, since it is given by Inductive Automation
in the docs.
I understand our docs tell you to put it in lib/core/gateway
, but I'm here telling you that the base lib
folder should also work, because I think both end up on the library path.
It's funny because Ignition returns a connection error if the .dll name does not match mssql-jdbc_auth-9.4.0.x64
. That's why I renamed it.
I will try this tomorrow, thanks!
While this doesn't really help with this situation... aside from the upgrade/restore process, we don't care at all about what this file is named. It's up to the Microsoft provided SQL Server JDBC driver to load it and use it for authentication. So ignore my attempt at a workaround, since apparently their driver cares what it's named, and go ahead and try Kevin's.
1 Like
Hello
I can confirm that locating auth .dll files in C:\Program Files\Inductive Automation\Ignition\lib
also work.
What I cannot confirm yet is if those files are deleted on a gateway upgrade, at least until the next Ignition release (3.1.42).
Thanks @Kevin.Herron
Hello,
Just upgraded to 3.1.42. I can confirm that this solution works.
Thanks