Try this topic:
After replacing a development installation of Ignition 8.1 with 7.9.17, I am suddenly unable to communicate with my local SQL server. The connection was fine before the reinstall but now it’s faulted and showing this error:
Cannot create PoolableConnectionFactory (The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: “No appropriate protocol (protocol is disabled or cipher suites are inappropriate)”.)
I’ve double checked all t…
BTW, in addition to my low opinion of Microsoft Windows on plant floors, I have a low opinion of Microsoft SQL Server in industrial applications. Some of my rants on that:
Two suggestions:
Don’t use jython’s datetime. Use java.util.Date and related types–that’s what Ignition passes around.
Set MS SQL Server to use UTC and the server it runs on to UTC. That is the only way to have flawless date/time/timezone support in Ignition.
Java’s datetime type is fundamentally built in milliseconds UTC (including serialization when passed over a network) with conversions to and from local time zones as needed. This allows clients and gateways to work with the same…
This is true, but can be mitigated if you practice safe SQL… using ANSI standard quoting and explicit capitalization of identifiers, in particular. (Table, column, and schema names.) You may have to turn on support of standard quoting in MySQL, but the other major brands will accept it out of the box.
This is one of the reasons I use PostgreSQL in development – it natively uses ANSI quoting and otherwise tries hard to be extremely standards-compliant. I can generally take any properly-quot…
It isn’t just you. It is a significant enough issue that I do not supply or support any version of Windows. I will install on top of it for my customers, but they must supply and support the machine(s) with Windows. Same for MS SQL Server. SQL Server is particularly troublesome, as its timezone-aware column type is overspecified, and doesn’t play well with JDBC. The only way to use SQL Server with Ignition in a geographically diverse environment is to keep SQL Server in a machine using UTC…
Looks like the closest equivalent for SQL Server is the MERGE statement. SQL Server 2019 does not support the standard’s ON CONFLICT clause.
2 Likes