Avant de démarrer la mise à niveau, il est important de suivre les tâches de maintenance suivantes pour vous assurer que le système est prêt et peut être restauré si des problèmes surviennent :
Lors de l’exécution de la mise à niveau, en plus des activités de mise à niveau de contenu et du code, une migration du référentiel doit être effectuée. La migration crée une copie du référentiel dans le nouveau format tar de segment. Par conséquent, vous devez disposer de suffisamment d’espace disque pour conserver une seconde version du référentiel, potentiellement plus grande.
AEM doit être entièrement sauvegardé avant de commencer la mise à niveau. Veillez à sauvegarder votre référentiel, l’installation de l’application, la banque de données et les instances Mongo, le cas échéant. Pour plus d’informations sur la sauvegarde et la restauration d’une instance AEM, voir Sauvegarde et restauration.
Le processus de mise à niveau est utile dans le maintien et la fusion du contenu existant et des configurations à partir des chemins d’accès /apps
et /libs
dans le référentiel. Pour les modifications apportées au chemin d’accès /etc
, y compris les configurations Context Hub, il est souvent nécessaire de réappliquer ces modifications après la mise à niveau. Alors que la mise à niveau crée une copie de sauvegarde de toutes les modifications qui ne peuvent pas fusionner sous /var
, nous vous recommandons de sauvegarder ces modifications manuellement avant de commencer la mise à niveau.
Lors du démarrage d’AEM depuis le fichier jar, un fichier quickstart.properties
est généré sous crx-quickstart/conf
. Si AEM a uniquement été lancé avec le script de démarrage dans le passé, ce fichier ne sera pas présent et la mise à niveau échouera. Veillez à vérifier l’existence de ce fichier et à redémarrer AEM depuis le fichier jar s’il n’existe pas.
Les tâches WorkflowPurgeTask
et com.day.cq.audit.impl.AuditLogMaintenanceTask
nécessitent des configurations OSGi distinctes et ne fonctionneront pas sans celles-ci. Si elles échouent lors de l’exécution des tâches avant la mise à niveau, les configurations manquantes en sont la cause la plus probable. Par conséquent, veillez à ajouter des configurations OSGi pour ces tâches ou à les supprimer de la liste de tâches d’optimisation avant la mise à niveau si vous ne souhaitez pas les exécuter. La documentation pour la configuration des tâches de purge du workflow se trouve dans la section Administration des instances de workflow et la configuration des tâches de maintenance du journal d’audit se trouve dans la section Maintenance du journal d’audit dans AEM 6.
Pour la purge du workflow et du journal d’audit dans CQ 5.6 et la purge du journal d’audit dans AEM 6.0, voir Purge du workflow et des nœuds d’audit.
En raison du niveau de personnalisation accordé par AEM, il n’existe généralement pas de méthode uniforme pour effectuer les mises à niveau. Ceci complique la création d’une procédure standard de mise à niveau.
Dans les versions précédentes, il était aussi difficile pour les mises à niveau AEM qui ont été arrêtées ou ont échoué d’êtres enlevées sans risque. Cela a entrainé des situations dans lesquelles il était nécessaire d’effectuer un redémarrage complet d’une mise à niveau, ou des mises à niveau défectueuses ont été appliquées sans aucun avertissement.
Pour remédier à ces problemes, Adobe a ajouté plusieurs améliorations au processus de mise à niveau en vue de la rendre plus robuste et facile à utiliser. Les tâches de maintenance précédant la niveau, qui auparavant devaient être effectuées manuellement, sont en train d’être optimisées et automatisées. De même, des rapports d’après mise à niveau ont été ajoutés pour assurer un examen complet de la procédure en vue d’identifier plus facilement les problèmes.
Les tâches de maintenance postérieures à la mise à niveau sont actuellement réparties dans différentes interfaces, qui sont partiellement ou totalement exécutées manuellement. L’optimisation de la maintenance avant la mise à niveau apparue dans la version AEM 6.3 permet de déclencher ces tâches de façon unifiée et d’examiner leurs résultats sur demande.
Toutes les tâches comprises dans cette étape d’optimisation postérieure à la mise à niveau sont compatibles avec toutes les versions à partir d’AEM 6.0.
Dans AEM 6.3 et versions ultérieures, les tâches d’optimisation de la maintenance précédant la mise à niveau sont incluses dans le fichier jar de démarrage rapide. Si vous effectuez une mise à niveau à partir d’une ancienne version d’AEM 6, elles sont disponibles via des packages distincts que vous pouvez télécharger à partir du gestionnaire de modules.
Vous pouvez trouver les modules à ces emplacements :
Le composant OSGi PreUpgradeTasksMBean
est préconfiguré avec une liste de tâches de maintenance bénéficiant déjà de la mise à niveau, pouvant toutes être exécutées simultanément. Vous pouvez configurer les tâches en suivant la procédure ci-dessous :
Accédez à la console web en accédant à https://serveraddress:serverport/system/console/configMgr
Recherchez « preupgradetasks », puis cliquez sur le premier composant correspondant. Le nom complet du composant est com.adobe.aem.upgrade.prechecks.mbean.impl.PreUpgradeTasksMBeanImpl
.
Modifiez la liste des tâches de maintenance devant être exécutées comme illustré ci-dessous :
La liste des tâches varie selon le mode d’exécution utilisé pour démarrer l’instance. Vous trouverez ci-dessous une description du mode d’exécution pour lequel chaque tâche de maintenance est conçue.
Tâche | Mode d’exécution | Remarques |
TarIndexMergeTask |
crx2 | |
DataStoreGarbageCollectionTask |
crx2 | Exécute le marquage et le balayage. Pour les banques de données partagées, supprimez cette étape et procédez à l’exécution manuellement ou préparez correctement les instances avant l’exécution. |
ConsistencyCheckTask |
crx2 | |
WorkflowPurgeTask |
crx2/crx3 | Doit configurer la configuration OSGi de purge du workflow Adobe Granite avant l’exécution. |
GenerateBundlesListFileTask |
crx2/crx3 | |
RevisionCleanupTask |
crx3 | Pour les instances TarMK sur AEM de 6.0 à 6.2, il faut plutôt exécuter manuellement le nettoyage des révisions hors ligne. |
com.day.cq.audit.impl.AuditLogMaintenanceTask |
crx3 | Doit configurer la configuration OSGi du planificateur de purge de journal d’audit avant l’exécution. |
DataStoreGarbageCollectionTask
appelle l’opération de récupération de l’espace mémoire du magasin de données avec la phase de marquage et de balayage, le cas échéant. Pour les déploiements qui utilisent une banque de données partagée, veillez à la reconfigurer correctement ou à préparer l’instance pour éviter la suppression des éléments référencés par une autre instance. Cela peut nécessiter l’exécution manuelle de la phase de marquage sur toutes les instances avant de déclencher cette tâche postérieure à la mise à niveau.
Le composant OSGi PreUpgradeTasksMBeanImpl
est préconfiguré avec une liste de balises de vérification de l’intégrité précédant la mise à niveau à exécuter lorsque la méthode runAllPreUpgradeHealthChecks
est appelée :
system : la balise est utilisée par les vérifications de l’intégrité de la maintenance Granite
pre-upgrade : il s’agit d’une balise personnalisée qui peut être ajoutée à toutes les vérifications d’intégrité dont vous pouvez définir l’exécution avant une mise à niveau
La liste est modifiable. Vous pouvez utiliser les bouton Plus (+) et Moins (-) à côté des balises pour ajouter d’autres balises personnalisées ou pour supprimer les balises par défaut.
Méthodes MBean
La fonctionnalité bean gérée peut être accessible à l’aide de la console JMX.
Vous pouvez accéder aux MBeans en procédant comme suit :
Accédez à la console JMX à l’adresse https://serveraddress:serverport/system/console/jmx.
Recherchez PreUpgradeTasks et cliquez sur le résultat.
Sélectionnez une méthode à partir de la section Opérations et sélectionnez Invoquer dans la fenêtre suivante.
Vous trouverez ci-dessous la liste de toutes les méthodes disponibles offertes par PreUpgradeTasksMBeanImpl
:
Nom de méthode | Type | Description |
getAvailablePreUpgradeTasksNames() |
INFO | Affiche la liste de noms des tâches de maintenance avant la mise à niveau. |
getAvailablePreUpgradeHealthChecksTagNames() |
INFO | Affiche la liste des noms de balises des vérifications d’intégrité précédant la mise à niveau. |
runAllPreUpgradeTasks() |
ACTION | Exécute toutes les tâches de maintenance de la liste avant la mise à niveau. |
runPreUpgradeTask(preUpgradeTaskName) |
ACTION | Exécute la tâche de maintenance avant la mise à niveau avec le nom donné en tant que paramètre. |
isRunAllPreUpgradeTaskRunning() |
ACTION_INFO | Vérifie si la tâche runAllPreUpgradeTasksmaintenance est en cours d’exécution. |
getAnyPreUpgradeTaskRunning() |
ACTION_INFO | Vérifie si une tâche de maintenance avant la mise à niveau est en cours d’exécution et renvoie un tableau contenant les noms des tâches en cours d’exécution. |
getPreUpgradeTaskLastRunTime(preUpgradeTaskName) |
ACTION | Affiche l’heure exacte d’exécution de la tâche de maintenance avant la mise à niveau avec le nom donné en tant que paramètre. |
getPreUpgradeTaskLastRunState(preUpgradeTaskName) |
ACTION | Affiche le dernier état d’exécution de la tâche de maintenance avant la mise à niveau, avec le nom donné en tant que paramètre. |
runAllPreUpgradeHealthChecks(shutDownOnSuccess) |
ACTION | Exécute toutes les vérifications d’intégrité avant la mise à niveau et enregistre leur statut dans un fichier nommé Le fichier des propriétés est utilisé comme prérequis pour une future mise à niveau |
detectUsageOfUnavailableAPI(aemVersion) |
ACTION | Répertorie tous les modules importés qui ne fonctionneront plus lors du passage à la version d’AEM spécifiée. La version cible d’AEM doit être fournie en tant que paramètre. |
Les méthodes MBean peuvent être invoquées via :
Cette étape est nécessaire uniquement si vous effectuez une mise à niveau à partir d’une version d’AEM 5. Elle peut être entièrement ignorée pour les mises à niveau des versions ultérieures à AEM 6.
La manière dont les modules de connexion LoginModules
sont configurés pour l’authentification au niveau du référentiel a complètement changé dans Apache Oak.
Dans les versions d’AEM qui utilisaient CRX2, la configuration était placée dans le fichier repository.xml
du référentiel alors qu’à partir de la version 6 et suivantes, cette opération est effectuée dans le service Apache Felix JAAS Configuration Factory via la console web.
En conséquence, toute configuration existante doit être désactivée et recréée pour Apache Oak après la mise à niveau.
Pour désactiver les modules personnalisés définis dans la configuration JAAS de repository.xml
, vous devez modifier la configuration afin d’utiliser le LoginModule
par défaut, comme dans cet exemple :
<Security >
....
<!--
Use LoginModule authenticating against repository itself
-->
<LoginModule class = "com.day.crx.core.CRXLoginModule" >
<param name = "anonymousId" value = "anonymous" />
<param name = "adminId" value ="admin" />
<param name = "disableNTLMAuth" value = "true" />
<param name = "tokenExpiration" value = "43200000" />
<!-- param name="trust_credentials_attribute" value="d5b9167e95dad6e7d3b5d6fa8df48af8"/
-->
</LoginModule >
</ Security>
Pour plus d’informations, consultez la section Authentification avec le module de connexion externe.
Pour un exemple de configuration de LoginModule
dans AEM 6, consultez la section Configuration de LDAP avec AEM 6.
Ne supprimez les modules du répertoire crx-quickstart/install qu’APRÈS avoir arrêté l’instance AEM. Il s’agit de l’une des dernières étapes avant le lancement de la procédure de mise à niveau statique.
Supprimez tous les packs de services, les packs de fonctionnalités ou les correctifs logiciels qui ont été déployés via le répertoire crx-quickstart/install
sur le système de fichiers local. Cela empêche l’installation accidentelle d’anciens correctifs et Service Packs sur la nouvelle version d’AEM après la mise à jour.
Si vous utilisez TarMK Cold Standby, arrêtez toutes les instances Cold Standby. Cela vous offre une façon efficace de revenir en ligne en cas de problème avec la mise à niveau. Une fois que la mise à niveau a abouti, les instances Cold Standby devront être recréées à partir des instances principales mises à niveau.
Désactivez toutes les tâches OSGi planifiées qui sont incluses dans le code de l’application.
Cette étape est nécessaire uniquement pour les installations TarMK
Si vous utilisez TarMK, vous devez effectuer le nettoyage des révisions hors ligne avant de procéder à la mise à niveau. Ainsi, l’étape de migration du référentiel et les tâches de mise à niveau associées sont nettement plus rapides et permettent de garantir que le nettoyage des révisions en ligne s’exécute correctement une fois la mise à niveau terminée. Pour plus d’informations sur l’exécution du nettoyage des révisions hors ligne, voir Exécution du nettoyage des révisions hors ligne.
Cette étape est nécessaire uniquement pour les instances exécutant crx3
Après l’exécution du nettoyage des révisions sur les instances CRX3, vous devez procéder au nettoyage de la mémoire de l’entrepôt de données pour supprimer les tâches non référencées dans l’entrepôt de données. Pour obtenir des instructions, consultez la documentation sur le nettoyage de la mémoire de l’entrepôt de données.
Cette tâche de maintenance avant la mise à niveau n’est nécessaire que si :
Il existe des cas exceptionnels où les utilisateurs du service peuvent se retrouver dans des versions AEM plus anciennes mal balisées en tant qu’utilisateurs standard.
Si cela se produit, la mise à niveau échoue avec un message comme celui-ci :
ERROR [Apache Sling Repository Startup Thread] com.adobe.granite.repository.impl.SlingRepositoryManager Exception in a SlingRepositoryInitializer, SlingRepository service registration aborted
java.lang.RuntimeException: Unable to create service user [communities-utility-reader]:java.lang.RuntimeException: Existing user communities-utility-reader is not a service user.
Pour contourner ce problème, procédez comme suit :
Pour contourner ce problème, procédez comme suit :
En règle générale, la pile Apache Oak sous-jacente utilisée par AEM pour la persistance s’occupe de la mise à niveau du schéma de base de données si nécessaire.
Cependant, il peut arriver que le schéma ne puisse pas être mis à niveau automatiquement. Il s’agit principalement d’environnements de sécurité élevée dans lesquels la base de données s’exécute sous un utilisateur avec des privilèges très limités. Si cela se produit, AEM continuera à utiliser l’ancien schéma.
Pour éviter cela, vous devez mettre à niveau le schéma en suivant la procédure ci-dessous :
Arrêtez l’instance AEM qui doit être mise à niveau.
Mettez à niveau le schéma de la base de données. Consultez la documentation relative à votre type de base de données afin de connaître les outils à utiliser pour y parvenir.
Pour plus d’informations sur la façon dont Oak gère les mises à niveau des schémas, consultez cette page sur le site web d’Apache.
Continuez la mise à niveau d’AEM.
Il est conseillé d’archiver vos fichiers journal actuels avant de lancer la mise à niveau. Il sera alors plus facile de surveiller et d’analyser vos fichiers journaux pendant et après la mise à niveau pour identifier et résoudre les problèmes qui peuvent survenir.