web stats
Horizontal Scaling and Shared Database - Mirth Community

Go Back   Mirth Community > Mirth Connect > Support

Thread Tools Display Modes
Old 02-22-2020, 12:17 AM
lleblow lleblow is offline
What's HL7?
Join Date: Feb 2020
Posts: 2
lleblow is on a distinguished road
Question Horizontal Scaling and Shared Database

Thank you for all your amazing work on Mirth (NextGen Connect)!

I would like to run multiple Mirth Connect instances all sharing the same `database.url` value in their `mirth.properties` files. Is this supported? And if so, to what extent?

I have scanned the forums, user guide, Confluence and Jira. I have seen some cards related to running multiple Mirth Connect instances all using the same database. But I haven't seen any official documentation on this feature and looking back at http://www.mirthcorp.com/community/i...wse/MIRTH-2792 it looks like there may have been a regression related to this feature?

From a recent thread (http://www.mirthcorp.com/community/f...d.php?t=219000), it sounds like it is possible to share a database among Mirth instances:
Yes that is correct, you can choose to have all three servers connect to the same database.

The Advanced Clustering adds a ton of functionality on top of such clusters, like the ability to manage the entire cluster no matter which instance you happen to login to. Or the ability for instances to detect when another node goes down and automatically take over queued/unfinished messages.
Is this answer still relevant? Is this feature officially supported or could it break in a new release? What are the implications around using the same database for multiple instances? Queued/unfinished messages received in one instance cannot be resumed/processed in another instance? Are there any other "gotchas" or things to be careful of?

Since it seems this is a common question that comes up from time to time, I would like to write a Confluence page on this if the Mirth team is open to that. If there is a better place to ask this question, please let me know.

Thank you so much
Reply With Quote
Old 02-26-2020, 03:02 PM
pacmano pacmano is online now
OBX.3 Kenobi
Join Date: Oct 2009
Location: Texas
Posts: 124
pacmano is on a distinguished road

The Advanced Clustering plugin provides a bunch of functionality that you would need to reproduce on your own.
Mirth 3.8.0 / PostgreSQL 11 / Ubuntu 18.04
Diridium Technologies, Inc.
Reply With Quote
Old 02-27-2020, 06:37 AM
lleblow lleblow is offline
What's HL7?
Join Date: Feb 2020
Posts: 2
lleblow is on a distinguished road

@pacmano, thanks, so I have heard...

Last edited by lleblow; 02-27-2020 at 11:35 AM.
Reply With Quote
Old 02-28-2020, 08:21 AM
agermano agermano is offline
Mirth Guru
Join Date: Apr 2017
Location: Indiana, USA
Posts: 1,160
agermano is on a distinguished road

This isn't necessarily an all inclusive list, but narupley provided this as some of the features included with the advanced cluster plugin.

*Heartbeat / Failure Detection:* This fixes the split-brain problem by having each node record heartbeats to the central database. It allows the cluster to reliably determine which nodes are online or offline.

*Polling Channels:* Only one node in the cluster will execute polling channels. User can configure which node is the preferred polling handler.

*Data Pruner:* Only one node in the cluster will execute the data pruner. User can configure which node is the preferred pruner.

*Synchronized Channel Operations:* Deploying/starting/stopping/etc. a channel on any node will perform the same operation on all nodes. You only need to log into *one* of the nodes, doesn't matter which. You can even login via the virtual IP of the load balancer (with the sessionstore setting on).

*Automatic Message Recovery:* If any server leaves the cluster, another server will automatically take over any unfinished or queued messages.

*View Cluster-wide Message Statistics:* The dashboard is overhauled, allowing you to see statistics for the entire cluster or individual nodes

*View statuses of all cluster nodes:* You can see in real time the number of nodes in your cluster, which nodes have gone offline, and other information like the last heartbeat timestamp.

*View cluster task history:* All tasks that execute across the entire cluster (like deploying a channel) are visible in a dashboard tab. You can view the task for individual nodes, allowing advanced troubleshooting if, for example, the channel failed to deploy on one node but not the others.

*Combined server/connection/alert logs:* All server log entries from all servers are visible in the same Administrator tab. You can view the server log among the entire cluster, or drill into a specific node. The same goes for the Connection Log and Advanced Alerting logs.

New in 3.7

*Guaranteed Message Order:* Allow only one message to process through a channel at any given time across the _entire_ cluster. This can be done at the overall channel level, or at the destination queue level. When enabled for a destination queue, all nodes can add messages to the queue, but only one node actually consumes from and processes the queue.
Reply With Quote

database, horizontal, scale, share

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT -8. The time now is 07:53 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2020, vBulletin Solutions, Inc.
Mirth Corporation