L’historique des versions incohérentes peut entraîner un grand nombre d’opérations CQ, notamment la réplication, la restauration de version et l’installation des modules de contenu.
Un historique de version rompu provoque une exception org.apache.jackrabbit.core.state.NoSuchItemStateException dans les fichiers journaux. Et vous voyez le même élément dans les classes liées à la trace de la pile du module org.apache.jackrabbit.core.version.
Utilisez le paramètre système « org.apache.jackrabbit.version.recovery: »
Pour appliquer le paramètre, procédez comme suit :
- Installez le dernier correctif CRX2.2. Vous pouvez demander le dernier correctif CRX en soumettant un ticket au Servide de support. Suivez les instructions d'installation de correction et veillez à redémarrer le CQ après l'avoir installé.
- Arrêtez CQ/CRX.
- Ajoutez le paramètre jvm au script de démarrage : -Dorg.apache.jackrabbit.version.recovery=true
- Démarrez CQ/CRX.
- Vérifiez l’état du processus java (par exemple, ps -ef | grep java) pour vérifier que le nouveau paramètre est utilisé.
Si ce n’est pas le cas, la procédure de récupération supprime la référence interrompue au magasin de versions. En particulier : le mixin mix:versionable et les propriétés jcr:versionHistory, jcr:baseVersion, jcr:predecessors et jcr:isCheckedOut. Il permet au référentiel de créer le graphique de la nouvelle version pour le noeud, le temps requis.
- Arrêtez l’instance.
- Supprimez le dossier de version et le dossier repository/repository/index.
- (Facultatif) Ajoutez un correctif de cohérence et vérification dans le crx.default workspace.xml pour le gestionnaire des données de la rémanence tar.
- Ajoutez -Dorg.apache.jackrabbit.version.recovery=true
- Démarrez une instance (cette opération peut prendre plusieurs heures, jours, selon la taille de données et performances I/O, pensez à tester sur une copie au préalable.
- Lorsque l’instance est prête, créez un module à partir de /etc/workflow/models.
- Supprimez /etc/worflow/models (avec les explorateurs CRXDE ou CRX).
- Installez le module que vous venez de créer pour recréer les modèles de processus.
Remarque : Depuis CRX 2.2, le paramètre décrit dans l'article suivant permet d'éviter des incohérences.