Mirth Connect 4.7.1 requires Java 17 as its minimum runtime, following the switch introduced in version 4.7.0. Upgrading safely means auditing custom scripts and extensions for Java 17 compatibility, validating MySQL 8.0+ connectivity, testing in a production-like staging environment, and cutting over through a parallel or rolling deployment so HL7 and FHIR message flow is never interrupted.
Healthcare integration teams running Mirth Connect on Java 8 or Java 11 have a hard deadline hiding inside their upgrade backlog. Since Mirth Connect 4.7.0, Java 17 is the documented minimum supported runtime, and that requirement carries forward into 4.7.1. For organizations still on the 4.5.x or 4.6.x line, moving to 4.7.1 is less a routine patch and more a coordinated migration touching the JVM, the database tier, and every custom channel script in production.
This guide walks through what actually changes on the way to 4.7.1, a compatibility checklist to run before touching production, and deployment patterns that keep HL7, FHIR, and X12 message traffic flowing throughout the cutover.
Key Takeaways
- Java 17 is the minimum supported runtime for Mirth Connect from version 4.7.0 forward, and 4.7.1 does not relax that requirement.
- MySQL 8.0 became the minimum supported database version starting with 4.6.1, a detail that trips up teams focused only on the Java change.
- Mirth Connect moved to a single commercial licensing model in the 4.6 release series, so 4.7.1 builds and updates come through NextGen Healthcare and authorized resellers rather than open community source.
- Custom JavaScript transformers, filters, and any third-party JARs referenced in channels need explicit revalidation under Java 17 before go-live.
- A parallel (blue-green) or rolling channel cutover avoids the all-at-once outage risk of a single in-place upgrade on a production server.
Why the Java 17 Migration Matters for Mirth Connect 4.7.1
NextGen Healthcare confirmed the shift away from Java 8 in its 4.7.0 release notes, moving the minimum supported Java version to Java 17 alongside Administrator Launcher (MCAL) version 1.5.0.
According to NextGen’s official Java Licensing FAQ, Mirth Connect is validated specifically for Java 17. While it may run on newer Java releases, NextGen does not guarantee compatibility with every future version; you must test new JVMs in a non-production environment first.
For teams that skipped 4.5.x and 4.6.x, this is not just a version bump. Java 17 introduces stricter module boundaries, changes to reflection access, and different default garbage collection behavior compared to Java 8. Any channel that relies on custom JavaScript using reflection tricks, or on third-party libraries compiled against older Java APIs, is a candidate for testing failures that only show up in Java 17 — not in the version number of Mirth Connect itself.
ChampSoft’s broader work on enterprise-grade Mirth Connect deployments has consistently found that JVM tuning and dependency auditing not the installer step are where upgrade timelines actually slip.
Pre-Upgrade Compatibility Checklist
Run through each of these before scheduling a production cutover to 4.7.1:
- Inventory custom code. List every JavaScript transformer, filter, and destination that references external classes, reflection, or deprecated Java 8 APIs.
- Audit third-party JARs. Confirm every custom library bundled into channels or the server classpath has a Java 17-compatible build.
- Check commercial extension compatibility. Extensions built against pre-4.7 APIs may need vendor updates before they load correctly under the new runtime.
- Confirm the database version. Mirth Connect has required MySQL 8.0 or later since version 4.6.1; verify this independently of the Java 17 check, since it’s easy to fix one and miss the other.
- Review JVM startup options. Custom entries in mcserver. vmoptions or mcservice.vmoptions written for Java 8 or Java 11 may include flags that Java 17 no longer recognizes or that behave differently.
- Back up the full environment. Take a database backup and export all channel configurations before starting, independent of whatever rollback plan the deployment strategy provides.
- Stand up a staging environment that mirrors production. Channel volume, message types, and third-party integrations should match production closely enough that a successful staging test meaningfully predicts production behavior.
Step-by-Step Upgrade Path to Mirth Connect 4.7.1
The installer-driven upgrade itself is straightforward once compatibility work is done. NextGen’s official upgrade documentation for the 4.7.1 release describes the same core pattern used across recent versions:
- Stop the Mirth Connect Administrator, Server Manager, and the Mirth Connect server or service completely before installing.
- Install the Java 17 runtime on the target host if it is not already present, and confirm the JAVA_HOME or equivalent environment variable points to it.
- Run the Mirth Connect 4.7.1 installer, select the update option, and point it to the existing installation directory so configuration and license data carry forward.
- Update the Mirth Connect Administrator Launcher to version 1.5.0 or later on every workstation used to manage the server.
- Start the server and confirm it comes up cleanly against the existing database before re-enabling inbound message traffic.
- Re-deploy channels one at a time, watching logs for JavaScript errors or missing classes that only surface once real messages start flowing.
Skipping several major versions at once (for example, 4.4.x directly to 4.7.1) increases risk, since JVM, database, and licensing changes accumulated across 4.5.0, 4.6.0, and 4.6.1 all apply at once. Where possible, validate against the intermediate release notes even if the installer allows a direct jump.
Zero-Downtime Deployment Strategies for Mirth Connect
Interface engines sit in the critical path for lab results, ADT feeds, and billing transactions, so an upgrade that takes the server offline for hours is rarely acceptable. Three patterns cover most production environments:
Parallel (Blue-Green) Server Build
Stand up a second Mirth Connect 4.7.1 server on Java 17 alongside the existing production server. Import channel configurations, point it at a copy (or replica) of the production database, and validate message processing before switching inbound traffic, typically at the load balancer, DNS, or MLLP listener level from the old server to the new one. This is the lowest-risk pattern because the old environment stays untouched as an instant rollback path.
Rolling Channel Cutover
For environments where a full second server isn’t practical, migrate channels in waves, lower-priority or lower-volume channels first rather than upgrading and re-deploying everything simultaneously. This limits the blast radius of any single channel’s Java 17 incompatibility and gives the team a chance to fix issues before touching higher-priority ADT or lab feeds.
Active-Passive Failover Pair
For organizations that already run Mirth Connect in a high-availability configuration, upgrade the passive node first, fully validate it, then fail over to it and upgrade the former active node second. This reuses existing HA infrastructure rather than building temporary parallel capacity.
Whichever pattern is used, the deployment plan should include a defined rollback trigger (for example, a specific error rate or message backlog threshold) agreed upon before the cutover window starts, not improvised during it.
Mirth Connect: Pre-4.7 vs. 4.7.1 at a Glance
| Attribute | Pre-4.7 (Java 8 line) | Mirth Connect 4.7.1 |
| Minimum Java version | Java 8 (partial compatibility through 11/16) | Java 17 (validated; newer versions untested by NextGen) |
| Administrator Launcher | MCAL 1.4.x or earlier | MCAL 1.5.0 or later required |
| Minimum MySQL version | MySQL 5.7 (through 4.6.0) | MySQL 8.0 (since 4.6.1) |
| Licensing model | Dual open-source / commercial | Single commercial license (since the 4.6 series) |
| Logging configuration | dir.logs property | property.logs (dir.logs deprecated) |
Common Upgrade Pitfalls (and How to Avoid Them)
- Upgrading Java but not the database. Teams that focus entirely on the Java 17 requirement sometimes miss that MySQL 8.0 has been required since 4.6.1; a channel can pass every Java compatibility test and still fail to connect to an unsupported database version.
- Testing with synthetic messages only. Custom JavaScript that works against sample HL7 messages in staging can still fail against edge cases in real production traffic, such as segment orders, encoding quirks, or field lengths that synthetic test data doesn’t cover.
- No agreed rollback threshold. Without a pre-defined rollback trigger, teams tend to wait too long during a live cutover, turning a minor issue into an extended outage.
- Forgetting the Administrator Launcher. Server-side upgrades sometimes proceed while workstation MCAL installations fall behind, causing connection or login errors that look like server-side bugs but aren’t.
- Treating the JSON-LD/documentation review as optional. Skipping a careful read of the version-specific upgrade notes between the current version and 4.7.1 means missing smaller but still breaking changes, such as the log4j2 property rename.
How ChampSoft Supports Mirth Connect 4.7.1 Upgrades
ChampSoft’s healthcare integration practice builds and maintains HL7/FHIR interoperability frameworks for hospitals, labs, and health systems that depend on interface engines like Mirth Connect running without interruption.
For a Mirth Connect 4.7.1 upgrade, that typically means:
- A pre-upgrade compatibility audit covering custom scripts, JVM options, and third-party extensions specific to the client’s channel configuration.
- Staging environments built to mirror production message volume and channel complexity before any production cutover is scheduled.
- Zero-downtime deployment execution using parallel-server or rolling-cutover patterns, matched to the client’s existing infrastructure and HA setup.
- Post-upgrade monitoring to confirm message throughput, transformation accuracy, and error rates match or improve on pre-upgrade baselines.
Teams evaluating whether to run this upgrade in-house or with a managed partner can review ChampSoft’s broader approach to Mirth Connect implementation in this guide to Mirth Connect architecture and compliance, which covers the engine’s core components in more depth.
The Bottom Line
Mirth Connect 4.7.1 is a Java 17 release wearing a minor-version number. The installer step is simple; the real work is auditing custom code, third-party extensions, and the database tier against Java 17 and MySQL 8.0 before the installer runs and choosing a deployment pattern that keeps message traffic flowing during cutover. Organizations that treat this as a full migration project, rather than a routine patch, are the ones that get through it without an unplanned interface outage.
FAQs
What does Mirth Connect 4.7.1 change compared to earlier 4.x releases?
4.7.1 sits in the 4.7.x line, which is the release series where NextGen Healthcare finalized the switch to Java 17 as the minimum supported runtime, alongside the Mirth Connect Administrator Launcher (MCAL) 1.5.0. Organizations on 4.6.x or earlier should treat the move to 4.7.1 primarily as a Java runtime migration, not just a routine patch.
Is Java 17 mandatory for Mirth Connect 4.7.1?
Yes. Starting with Mirth Connect 4.7.0, Java 17 is the documented minimum supported runtime, and 4.7.1 carries that requirement forward. Mirth Connect is validated against Java 17 specifically, and newer Java versions are not guaranteed to work without additional testing in a non-production environment first.
Can I upgrade directly from Mirth Connect 4.5.x to 4.7.1, or do I need to step through intermediate versions?
NextGen’s installer-based upgrade path supports moving forward from most supported prior versions in a single pass. Still, any environment running customized JVM options, legacy MySQL versions, or older commercial extensions should confirm compatibility notes for each intermediate release (4.6.0, 4.6.1, 4.7.0) before jumping straight to 4.7.1, since JVM, database, and licensing requirements changed across that span.
What is zero-downtime deployment in the context of a Mirth Connect upgrade?
It refers to upgrade patterns such as a parallel (blue-green) server build, a rolling channel cutover, or an active-passive failover pair that let HL7, FHIR, and other interface traffic keep flowing. At the same time, the new Mirth Connect version is installed, validated, and promoted, so clinical and billing systems never experience an unplanned integration outage.
Does Mirth Connect 4.7.1 still support MySQL 5.7 as a backing database?
No. The minimum supported MySQL version was raised to MySQL 8.0 starting with Mirth Connect 4.6.1, and that requirement carries through the 4.7.x line. Environments still running MySQL 5.7 need a database upgrade planned as part of the Mirth Connect upgrade project, not after it.
Is Mirth Connect still open source in version 4.7.1?
Mirth Connect moved to a single commercial licensing model starting with the 4.6 release series; NextGen Healthcare and authorized resellers distribute source code and updates for new releases, including 4.7.1, rather than publishing them openly. The existing open-source release history remains available, but it is no longer updated.
What should be tested before pushing Mirth Connect 4.7.1 to production?
At minimum: every custom JavaScript transformer and filter under Java 17, third-party JAR dependencies bundled in channels, commercial extension compatibility, database connectivity against the current MySQL version, SSL/TLS certificate handling, and full message throughput under production-like volume in a staging environment that mirrors the live channel configuration.
How long does a typical Mirth Connect 4.7.1 upgrade take?
For a single-server environment with a modest number of channels, the installer step itself typically takes under an hour. A realistic project timeline covering compatibility testing, staging validation, and a zero-downtime cutover usually runs from a few days to several weeks, depending on channel complexity, the number of custom scripts, and whether you use commercial extensions.






