Ancient JDBC driver for MSSQL on Docker version

EDIT: The whole trouble was caused by restoring an old gateway backup and has nothing to do with the docker image as such.

Hi everybody,

I spent a few days looking for the issue that caused Ignition in Docker (8.1.42) to not connect to the MSSQL Server (2022) on the Windows 11 host (no appropriate protocol error). I read all the articles and forum posts available on this topic, but nothing helped. I thought the issue was caused by running Docker in a Hyper-V VM and that the virtual network was somehow misconfigured.

Recently, I found out that the default JDBC driver for MSSQL in the latest Docker image (8.1.42) is outdated: sqljdbc4.jar.

I wasn't expecting it, and I checked it as the very last option (my fault). As soon as i enabled the tls 1.1 and 1.2 in java.security, it started to work. I also installed the same Ignition version on the host (Windows 11), and it connected to the same MSSQL server without any issues. This made me even more confused until I discovered that the JDBC driver on the host was up-to-date: mssql-jdbc-9.4.0.jre11.jar.

Here is a screenshot from Docker:

I am posting this here to save time for others. It would probably be great to update the Docker image as well.

I think you'll find it was the JDBC driver in the backup you restored that was out of date, not the one in the docker image.

1 Like

Well, 9.4 is also quite old. If you are trying to keep support for SQL Server 2012, the better driver would be 10.2. I think the user should be responsible for downgrading for older databases, not upgrading for newer.

IA should ship mssql-jdbc-12.8, IMNSHO.

2 Likes

Yeah, you're absolutely right, my apologies, i didn't realize this. Thanks for clarifying it.