Skip to content

3.10.0 What's New

Chris Turczynskyj edited this page Nov 3, 2021 · 3 revisions

Mirth Connect 3.10 includes better SQL Server database support, security improvements through fixes and library updates, and improvements for the Advanced Clustering plugin with a focus on improving performance of many of the tasks that are carried out on a frequent interval.

You can find a list of issues completed for this release here.

SQL Server Support Improvements

JTDS SQL Server Driver

The default SQL Server JTDS driver has been patched to include better support for encrypted database connections.

Microsoft SQL Server JDBC Driver

The official Microsoft SQL Server JDBC driver is now included and can be used optionally instead of the default JTDS driver. Just set the database driver in mirth.properties and use the correct JDBC connection url.

database.url = jdbc:sqlserver://<host>:<port>;databaseName=mirthdb
database.driver = com.microsoft.sqlserver.jdbc.SQLServerDriver

The Microsoft driver is also available to use in database connectors.

Database Drivers

General Fixes and Updates

Apache Commons Collections

Several libraries have been updated to address the following CVEs:

  • CVE-2017-15708
  • CVE-2015-6420
  • CVE-2015-4852
  • CVE-2015-7501
  • CVE-2019-13116

Library changes:

Library Previous Version New Version
Apache Commons Collections4 4.0 4.4
Apache Commons Collections 3.2.1 Removed
Apache Commons Configuration2 --- 2.7
Apache Commons Configuration 1.7 Removed
Apache Velocity 1.7 2.2
Apache Velocity Tools 2.0 3.0

XStream

XStream has been updated from 1.4.7 to 1.4.12 to address the following CVEs:

  • CVE-2017-7957
  • CVE-2013-7285
  • CVE-2016-3674

Mozilla Rhino

Updated Mozilla Rhino from 1.7.9 to 1.7.12.

Fix Multi-Server Startup

When multiple servers startup at the same time against a new, uninitialized, database, there could be a race condition where both servers attempt to initialize the database at the same time. A new property is available (server.startuplocksleep) that, if set, will cause servers to use a STARTUP_LOCK table to ensure that only one server initializes the database. Other servers will wait the specified amount of time (in milliseconds) during the startup sequence before continuing, allowing the first server to complete the database initialization procedure.

This setting is off by default but if you run into schema errors while creating a multi-node setup, most likely in a containerized environment, we recommend using this solution. The suggested value is 5000 (5 seconds).

For example:

server.startuplocksleep = 5000

Advanced Clustering

A lot of work has been done to reduce the necessity to write to the database when nothing needs updating. Also, there is now more fine grained control over synchronization intervals. This should increase general performance for those using Advanced Clustering.

Clone this wiki locally