ARTIFACTORY: How to recover missed synchronization for Federated Repositories and enable real-time synchronisation using auto-healing

AuthorFullName__c
Elumalai Ganesan
articleNumber
000006048
FirstPublishedDate
2024-03-06T12:20:46Z
lastModifiedDate
2025-07-22

ARTIFACTORY: How to recover missed synchronization for Federated Repositories and enable real-time synchronisation using auto-healing


Note: This feature requires all JPDs in the Federation to run Artifactory release 7.71.1 or later.
In some situations, maintaining immediate synchronization of all artifact events (creation, updates, deletions) among Federation members might not be achievable. Instances include temporary networking glitches between the JPDs, upgrades in Artifactory, user-initiated pauses in synchronization, and similar scenarios. If attempts to sync continually fail even after exhausting all retry options, the event synchronization halts, and the Federation transitions into an error state.

One approach to restoring the Federation involves executing a full sync, but this process can be time-intensive, especially if the Federated repositories contain a significant number of artifacts. Essentially, it's akin to rebooting the Federation.

Note: Should events accumulate over several days, the event cleanup mechanism holds the potential to clear non-propagated events, resulting in the queue transitioning to an out-of-sync state. In these instances, executing a full sync becomes necessary.

Starting from release 7.71.1, Artifactory introduces an auto-healing mechanism. This feature periodically examines Federated repositories for queues that have maxed out attempts to transmit events to other Federation members. When it identifies such exhausted queues, the mechanism automatically resets the failed events and initiates a fresh attempt to synchronize with the target mirror.

To enable this mechanism, the below properties must be added to $JFROG_HOME/artifactory/var/etc/artifactory/artifactory.system.properties file.
 

Property

Description

federated.self.manage.errors

Enables the recovery mechanism (via API or auto-healing). 

The default value is false.       

auto. healing.enabled

Enables auto-healing. 

 

The default value is false

federated.negotiation.enabled

Enables the negotiation process that helps prevent events on the remote Federation member from being overwritten by recovered events that are outdated.

The default value is false.


Note: The JFrog admins will be notified regarding the auto-healing via email. [[JFrog] Mirror Recovery in Progress]