Hi all, Recently I have been working on making both the index consistency check and database consistency check more robust in live (clustered) environments. See [1] and [2]. In both cases these improvements are not yet available during the initialization phases of the respective components that run these checks during repository startup.
In the case of the index consistency check, the double check feature I added performs a synchronisation of the cluster node before rechecking the errors. In the case of the database consistency check, the repair phase requires the availability of an update event channel to inform the cluster of modifications it makes. Both these cases require the cluster node to be started but the cluster node is only started after these initialization phases. I think the best way to solve this is to add a post-initialization step for the workspace startup process that is to be run after the cluster node has been started. Running the consistency checks could then be postponed to this phase. The sequence in the RepositoryImpl constructor would then be: initStartupWorkspaces() … clusterNode.start(); postInitStartupWorkspaces(); 1. https://issues.apache.org/jira/browse/JCR-3517 2. https://issues.apache.org/jira/browse/JCR-3525 What do others think? Is this the best way to solve this problem? -- Unico
