Strict Channel Synchronization
As of
Mirth® Connect
version 3.12, there is a new
Strict Channel Synchronization
feature available in the Clustering settings:
Strict Mode Enabled
Strict Mode Disabled
Server Events
Advanced Alerting
Advanced Configuration
Strict Mode Enabled
Strict Mode Disabled
Server Events
Advanced Alerting
Advanced Configuration
Recommendations
Explore
Mirth® Connect by NextGen Healthcare Advanced Clustering User Guide
Strict Mode Disabled
When this option is disabled, this strict synchronization is loosened, and other nodes are able to freely join the cluster without waiting for channel-specific tasks to finish. In addition, channel tasks will not block each other either. The startupDeploy and channelOperation cluster-wide locks are not acquired on startup in this case. This means that it is possible that channels could get out-of-sync, at least temporarily. For example: Channel A is currently deployed and Started across the cluster. A new server joins the cluster and sees that Channel A is currently deployed and started across the cluster, so it prepares to deploy and start that channel as well. Meanwhile, a user stops Channel A. The newly joined server deploys and starts Channel A. Now Channel A is Started on one server but Stopped on another. To address this, a separate channel synchronization process will be used to detect whether channels ever get out of sync and then deploy/undeploy/start/stop/etc them as necessar
Mirth® Connect by NextGen Healthcare Advanced Clustering User Guide
Strict Mode Enabled
This option is enabled by default to preserve the behavior of the clustering plugin upon upgrade to 3.12 or later. When this option is enabled, the Advanced Clustering extension ensures that all channel operations (deploy/undeploy/start/stop/etc.) are fully synchronized across the entire cluster, meaning that only one deploy/start/etc operation can be running at any given time. In addition, new servers that start up and attempt to join this cluster will be blocked by the following operations: Other servers starting up / joining the cluster Performing a channel deploy/undeploy/start/stop/pause/resume Performing a connector start/stop task Performing the Remove All Messages task for a channel Performing the Remove Results task for a channel Deleting a channel Performing message recovery for an offline server The clustering plugin does this by having each server obtain two locks as part of the startup process: startupDeploy: This lock prevents other servers from entering the startup proce
Mirth® Connect by NextGen Healthcare Advanced Clustering User Guide
Advanced Alerting
With the Advanced Alerting plugin installed, there will also be a new trigger type available, Clustering Channel Synchronization: When the channel synchronization process detects that an action should be taken, it will first send a Submitted event that can be triggered on. When that action finishes, it will send one of these two triggerable events: Succeeded: The task finished without any errors. Failed: The task finished with errors. This usually means that the channel was not able to be deployed/started/etc. With this event, the "exception" variable containing the full error stacktrace will be available in the template context. In addition to all of the regular template variables that are available in alert template contexts, this trigger also adds the following variables: Variable Description action The channel or connector action being taken. Will be one of: Deploy, Undeploy, Start, Stop, Pause, Resume event The stage of the current task. Will be one of: Submitted, Succeeded, Faile
Mirth® Connect by NextGen Healthcare Advanced Clustering User Guide
Server Events
When the channel synchronization process takes an action, it will also send an event to the Event Log. This is viewable and searchable in the Event Browser: Image of the Events browser. The level will be "Information" if the task was successful. If the task failed, the level will be "Error", and you will also be able to view the full exception stacktrace in the event attributes: Image of a full exception stacktrace in the event attributes. Parent topic: Strict Channel Synchronization
Mirth® Connect by NextGen Healthcare Advanced Clustering User Guide
Advanced Configuration
The following Java System properties can be set to configure how the channel synchronization process works: Property Default Description mirth.clustering.channelsync.initialwaittimems 60000 The initial amount of time that the sync process will wait for channel tasks to finish before moving on and releasing the channel operation lock. Default is 1 minute (60000 ms). mirth.clustering.channelsync.maxwaittimems 600000 The maximum amount of time that a particular channel task will be allowed to run before it gets cancelled. Default is 10 minutes (600000 ms). mirth.clustering.channelsync.resetfailedtaskms 86400000 When the maximum amount of failed attempts has been reached for a task, this setting determines how long to wait before resetting those attempts so it can start trying again. If you set this value to 0, these attempts will never be reset unless by a Redeploy All Channels task. When you perform a Deploy/Start/Resume task and it's successful, it will also reset the attempt counts for
Mirth® Connect by NextGen Healthcare Advanced Clustering User Guide
About Advanced Clustering Configuration
When the Advanced Clustering plugin is installed, the Clustering tab appears on the Settings page in Mirth® Connect. Image of the Clustering tab on the Settings page On this page, you can configure various timing settings used by the Advanced Clustering plugin. The page also features - in the Node Configuration section - a list of servers that have registered with the cluster, including status information about each server. Image of the Node Configuration section on the Clustering tab About Cluster Settings The Clustering page includes clustering configuration settings that you can modify. About Polling and Pruning Roles About Command Center Processor Role This topics helps you understand how to use the Advanced Clustering feature in conjunction with the Command Center Base plug-in. About IP Address and Ports