Utilisez le nettoyage pour supprimer tous les fichiers inutilisés dans l’entrepôt de données. CRX est compatible avec l’entrepôt de données Jackrabbit, consulter http://wiki.apache.org/jackrabbit/DataStore. Par défaut, CRX utilise l’entrepôt de données basé sur les fichiers, mais l’entrepôt de données Db est également compatible.

Pour exécuter le nettoyage de la mémoire, suivez les instructions suivantes :

  • Vous connecter en tant qu’administrateur.
  • Dans la console CRX, cliquez sur Configuration du référentiel.
  • Cliquez Nettoyage de la mémoire d’entrepôt de données.
  • Choisissez une ou plusieurs des options de ponctuation typographique suivantes :
Option Description
Nettoyage de la mémoire en premier Pour exécuter en premier le nettoyage de la mémoire principale (aussi appelé nettoyage de la mémoire de tas). Les objets expulsés de ce processus se trouvent toujours dans la mémoire principale, mais ne sont plus référencés. Le nettoyage de la mémoire d’entrepôt des données ne récupère que les éléments qui ne figurent plus dans la mémoire principale.
Suppression d’éléments inutilisés La sélection de cette option signifie que tous les fichiers inutilisés sont supprimés de l’entrepôt de données. Si cette option est désactivée, seule la dernière date de modification des éléments utilisés est mise à jour, mais aucun fichier n’est supprimé. N’activez pas cette option si plusieurs référentiels autonomes ou grappes distinctes partagent un entrepôt de données. À la place, supprimez les anciens éléments manuellement ou utilisez un script. Par exemple, supprimez les fichiers qui ont plus d’une semaine après avoir exécuté le nettoyage de la mémoire d’entrepôt de données sur chaque référentiel. Une grappe est un référentiel ; vous pouvez donc activer « Supprimer les éléments inutilisés » lors de l’utilisation de plusieurs instances de grappe partageant un référentiel.
Utilisation d’une analyse du gestionnaire de persistance Lorsque cette option est activée, le processus utilise un gestionnaire de persistance de bas niveau, si le gestionnaire de persistance est compatible avec cette option. La sélection de cette option accélère le processus de nettoyage de la mémoire, mais peut ralentir les opérations simultanées. Si cette option est désactivée, un nœud de niveau supérieur est utilisé.
  • Cliquez sur Exécuter.

Nettoyage de la mémoire dans un environnement en grappe

Entrepôt de données partagé

Lors de l’utilisation d’une grappe CRX, le nettoyage de la mémoire d’entrepôt de données peut être effectué à partir de n’importe quel nœud de la grappe.

Entrepôt de données en grappe

Lors de l’utilisation de l’entrepôt de données en grappe (option de configuration de stockage de données ClusterDataStore), exécutez le nettoyage de mémoire sur tous les nœuds de la grappe séparément.

Entrepôt de données multi-référentiel

Si, en même temps, plusieurs référentiels distincts utilisent le même entrepôt de données (telles que les instances d’auteur et de publication), n’utilisez pas l’option Supprimer. À la place, le processus se présente comme suit :

  • Sauvegardez votre entrepôt de données.
  • Connectez-vous à CRX en tant qu’administrateur.
  • Exécutez le nettoyage de la mémoire d’entrepôt de données sans cocher aucune option (assurez-vous notamment que l’option « Supprimer les éléments inutilisés » n’est _pas_ cochée)
    .
  • Dans un délai de cinq jours, exécutez-le sur_tous_les_référentiels partageant un entrepôt de données. Il est possible de définir le délai à 0 jours, en revanche, cela augmente la charge sur le système de fichiers. En outre, l’exécution simultanée du processus sur tous les référentiels est possible, mais elle augmente les E/S sur le système de fichiers qui contient l’entrepôt de données. Une fois ce processus fini, les fichiers de l’entrepôt de données présentent une nouvelle date de dernière modification.
  • Si le processus dure plus de cinq jours, augmentez le nombre de jours lorsque lors de la suppression (7 par défaut). Adobe recommande d’utiliser une marge de deux jours.
  • Pour répertorier les fichiers antérieurs à sept jours utilisez la ligne de commande suivante :
    find repository/datastore/* -mtime +7 -type f
  • Cette commande imprime le nombre d’octets pouvant être enregistrés :
    find repository/datastore/* -mtime +7 -type f -exec ls -l {} \; | awk '{ s+=$5 } END { print s }'
  • Supprimez tous les fichiers antérieurs à sept jours à l’aide de la ligne de commande suivante. Avertissement : si le nettoyage de la mémoire de l’entrepôt de données n’a pas été exécutée dans les derniers jours, il supprime des fichiers qui sont encore nécessaires.
    find repository/datastore/* -mtime +7 -type f -exec rm {} \;

Démarrage du nettoyage de l’entrepôt de données dans une application

Pour exécuter manuellement le nettoyage de la mémoire, utilisez le code suivant :

GarbageCollector gc; SessionImpl si = (SessionImpl)session; gc = si.createDataStoreGarbageCollector(); // Facultatif (si vous souhaitez mettre en place une barre de progression / sorties) :
gc.setScanEventListener(this); gc.scan(); gc.stopScan(); // Il peut s’agir d’un bouton séparé si plusieurs référentiels utilisent le même entrepôt de données : gc.deleteUnused(); Modifications du nettoyage de la mémoire d’entrepôt de données de CQ5.5 en avant (s’applique à CRX 2.3.15 ou à une version ultérieure)

À partir du CQ5.5, le CRX qui offre le référentiel est un service OSGi. Le service CRX est enregistré dans le registre de services OSGi en tant que service MBean. Ce fichier MBean est disponible dans la console JMX, qui expose les attributs et les opérations du nettoyage de mémoire de l’entrepôt de données.

  • L’interface utilisateur pour exécuter le nettoyage de mémoire de l’entrepôt de données est la suivante : http://<host>:<port>/system/console/jmx/com.adobe.granite%3Atype%3DRepository
  • La nouvelle IU ne comporte qu’une option, « Supprimer les éléments inutilisés », que vous pouvez définir sur vrai ou faux en fonction du cas d’utilisation. Vous pouvez consulter un exemple de commande cURL avec l’option définie sur faux ici : [1].
  • Les autres options
     :
    • L’option « Nettoyage de la mémoire en premier » ne fait pas partie de l’interface utilisateur du nettoyage de l’entrepôt de données et elle est disponible à l’adresse suivante : http://<host>:<port>/system/console/memoryusage.
    • L’option « Utilisation d’une analyse du gestionnaire de persistance » a été supprimée. 
    • L’option « Nettoyage de la mémoire en premier » a été déplacée à http://<host>:<port>/system/console/memoryusage.
    • La valeur par défaut pour le délai est définie sur 10.  Pour toute modification, changez une propriété bean dataStoreGarbageCollectionDelay. La commande cURL pour définir à 15 se montre ici : [2].

[1] curl -u admin:admin -X POST --data delete=false -H "Referer: http://<host>:<port>/system/console/jmx/com.adobe.granite%3Atype%3DRepository" http://<host>:<port>/system/console/jmx/com.adobe.granite%3Atype%3DRepository/op/runDataStoreGarbageCollection/java.lang.Boolean

[2] curl -u admin:admin -X POST --data value=15 -H "Referer: http://<host>:<port>/system/console/jmx/com.adobe.granite%3Atype%3DRepository" http://<host>:<port>/system/console/jmx/com.adobe.granite%3Atype%3DRepository/a/DataStoreGarbageCollectionDelay

Remarque :

AEM 5.6.1 (CRX 2.4.30+)

Le nouveau nettoyage d’entrepôt de données improvisé a été mis en œuvre dans la version 5.6.1. Ce qui est désormais activé par défaut (runDataStoreGarbageCollection).  Pour exécuter l’ancienne méthode de nettoyage de la mémoire d’entrepôt de données, utilisez runDataStoreClassicGarbageCollection qui exécute le nettoyage de la mémoire d’entrepôt de données en évitant l’utilisation du nettoyage optimisé TarPM. 

  • Si vous exécutez le nettoyage d’entrepôt de données « rapide » (runDataStoreGarbageCollection), assurez-vous de ne pas le désactiver en utilisant (stopDataStoreGarbageCollection) jusqu’à avoir installé le correctif 3241 pour 5.6.1 (voir ci-dessous l’URL pour le partage de modules et le fichier Readme).

Téléchargement du correctif 3241 à partir du partage de modules en cliquant ici.

* cq-5.6.1-hotfix-3421-readme.txt
Fichier Readme pour le correctif 3421

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne