In a recent upgrade, I had to get Maximo 7.6.1.2 to work with SQL Server 2019 (15.0.4198.2 – Jan/2022). 

Initially, I thought I needed to replace the JDBC driver that comes with Maximo with the latest JDBC driver version (10.2). However, it doesn’t solve the issue.

After searching the Web, I came across an article which suggests the problem is due to the new SQL Server version requires SSL protocol TLS 1.2 .

Thus, I managed to fix the issue by adding this parameter to the end of the JDBC connections string: sslProtocol=TLSv1.2;

The full connection string will look as follows:

mxe.db.url=jdbc:sqlserver://;serverName=[SERVERNAME];databaseName=[DBNAME];portNumber=1433;integratedSecurity=false;sendStringParametersAsUnicode=false;sslProtocol=TLSv1.2;

The other method that seems to work too is adding this parameter: -Dcom.ibm.jsse2.overrideDefaultTLS=true to the JVM argument of the Application server, or execution command of any tools running Java such as ScriptBuilder.bat, UpdateDB.bat or IntegrityUI.bat

For example, for the integrityui.bat tool, I edit the file and update it as below:

@..javajrebinjava -Dcom.ibm.jsse2.overrideDefaultTLS=true -Dswing.handleTopLevelPaint=false -classpath %MAXIMO_CLASSPATH% psdi.configure.UpgradeUI -i

Update Aug/2023: I recently had the following database connection error when running UpdateDB.bat with SQL Server 14 SP1:

com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "com.ibm.jsse2.util.j: PKIX path building failed

Without digging into which version of TLS is being used, I got it running by adding the following two parameters to the connection string in maximo.properties file:

encrypt=true;trustServerCertificate=true