Identification des incidents liés au service de cache dynamique
Le service de cache dynamique fonctionne dans une machine virtuelle Java™ (JVM) du serveur d'applications et intercepte les appels des objets pouvant être stockés en cache.
Les servlets ne sont pas mis en cache
Action recommandée |
---|
Activez la mise en cache des servlets. Dans la page Paramètres du conteneur web de la console d'administration, cochez la case Activer la mise en cache du servlet. |
Les entrées du cache ne sont pas enregistrées sur le disque
Explications | Action recommandée |
---|---|
Des entrées de cache sont enregistrées sur le disque quand elles doivent alimenter le cache alors que celui-ci est saturé. Des entrées de cache sont également enregistrées sur le disque quand la fonction Vidage sur le disque est activée dans la console d'administration et que le serveur est arrêté. | Vérifiez que la fonction Déchargement sur le disque est activée dans la page Paramètres du service de cache dynamique de la console d'administration. Vérifiez également que les entrées du cache enregistrées sur le disque peuvent être sérialisées et que leur propriété PersistToDisk a pour valeur false. |
Certains servlets ne sont pas répliqués ou enregistrés sur le disque
Action recommandée |
---|
Vérifiez que les attributs et la réponse peuvent être sérialisés. Si vous ne souhaitez pas stocker les attributs, utilisez la propriété suivante dans la règle de cache :<property name="save-attributes">false</property> |
Le service de cache dynamique ne met pas en cache les fragments sur le serveur d'extrémité
Action recommandée |
---|
Associez la propriété EdgeCacheable à la valeur true dans la règle de cache dont les entrées doivent être placées en cache sur le serveur d'extrémité.<property name="EdgeCacheable">true</property> |
Les invalidations de cache dynamique ne sont pas envoyées au plug-in du serveur HTTP IBM
Explications | Action recommandée |
---|---|
Le fichier DynaCacheEsi.ear est nécessaire à l'envoi d'invalidations aux caches externes. | Installez le fichier DynaCacheEsi.ear à l'aide de la console d'administration. |
La suppression d'entrées du cache est fréquente
Incident | Explications | Action recommandée |
---|---|---|
De nouvelles entrées sont ajoutées dans le cache alors que celui-ci est saturé. | Lorsque de nouvelles entrées sont ajoutées dans le cache alors qu'il est saturé, celui-ci est partiellement nettoyé. Dans ce cas, quand une entrée va être insérée dans le cache, le mécanisme de nettoyage LRU supprime l'entrée la plus ancienne. | Activez Déchargement sur le disque dans la page Service de cache dynamique de la console d'administration pour que les entrées soient enregistrées sur le disque. L'autre solution consiste à augmenter la taille du cache pour que celui-ci accueille davantage d'entrées. |
Les entrées de cache résidant sur le disque dont le délai d'expiration est 0 expirent au bout d'une journée
Explications | Action recommandée |
---|---|
La durée de vie maximale d'une entrée est de 24 heures dans le cache-disque. Un délai d'expiration nul (0) dans la règle de cache réduit la durée de vie des entrées à un jour, sauf si celles-ci sont supprimées avant. | Associez le délai d'expiration de la règle de cache à une valeur inférieure à 0. |
Surveillance impossible des entrées du cache sur le serveur Edge
Explications | Action recommandée |
---|---|
Utilisez le moniteur de cache dynamique pour contrôler les contenus du cache, du cache-disque et des caches externes tels que le cache d'extrémité. Pour que le cache du processeur ESI soit visible dans le cache, l'application DynaCacheEsi.ear doit être installée et la valeur true doit être définie pour la propriété esiInvalidationMonitor dans le fichier plugin-cfg.xml. |
Définissez la propriété esiInvalidationMonitor du fichier plugin-cfg.xml sur true. Pour plus d'informations sur la surveillance du service de mémoire cache dynamique, reportez-vous à l'article relatif à l'affichage des données de l'antémémoire. |
Ajustement du cache pour mon environnement
Action recommandée |
---|
L'outil de visualisation des performances Tivoli permet d'étudier le comportement de la cache pour vos applications. Envisagez également d'effectuer les opérations suivantes :
|
Nettoyage des fichiers du cache-disque après l'installation du correctif ou d'une nouvelle version
Symptôme | Incident | Action recommandée |
---|---|---|
Si le serveur est configuré pour utiliser le cache-disque, vous devez supprimer les fichiers du cache-disque car ceux-ci ne sont pas compatibles avec la version précédente. | Si vous ne supprimez pas les anciens fichiers du cache-disque, une erreur ClassCastException est générée dans le fichier systemerr.log lors de l'accès au cache à partir du disque. Remarque : Cette rubrique fait référence à un ou plusieurs des fichiers journaux de serveur d'applications. Il est recommandé de configurer le serveur de telle sorte qu'il utilise l'infrastructure de journalisation et de trace HPEL (High Performance Extensible Logging) à la place des fichiers SystemOut.log, SystemErr.log, trace.log et activity.log sur les systèmes distribués et IBM® i. Vous pouvez également utiliser HPEL conjointement avec vos fonctions de journalisation z/OS natives. Si vous utilisez l'infrastructure HPEL, vous pouvez accéder à toutes les informations de journalisation et de trace en utilisant l'outil de ligne de commande LogViewer à partir de votre répertoire bin de profil de serveur. Pour plus d'informations sur l'utilisation de HPEL, voir les informations sur l'utilisation de HPEL
en vue du traitement des incidents liés aux applications.
|
Pour supprimer le cache-disque, suivez les instructions ci-après.
|
Association de l'attribut flush à la valeur true pour chaque balise <jsp:include> du fichier JSP pouvant être mis en cache
Assurez-vous que l'attribut flush est défini sur true pour chaque balise <jsp:include> du fichier JSP pouvant être mis en cache.
Symptôme | Incident | Description | Action recommandée |
---|---|---|---|
Lors de l'extraction du fichier JSP (JavaServer Pages) dans le cache-dynamique, la page s'affiche partiellement. | L'attribut flush a pour valeur false dans la balise <jsp: include> du fichier JSP. | Lorsque le fichier JSP pouvant être mis en cache inclut un autre fichier JSP et que l'attribut de vidage 'flush' est défini à 'false' dans la balise <jsp: include>, les données écrites dans le flux de sortie parent avant la balise <jsp: include> ne sont pas mises en cache. | Définissez flush=true pour chaque balise <jsp:include> dans le fichier JSP pouvant être mis en cache. |
![[z/OS]](../images/ngzos.gif)
Activité d'E/S du système de fichiers lorsque le serveur d'applications est inactif
Symptôme | Explications | Réponse possible | Action recommandée |
---|---|---|---|
Il existe une activité d'E/S du système de fichiers lorsque le serveur d'applications est inactif. WebSphere Application Server recherche le fichier cachespec.xml dans le système HFS (Hierarchical File System), même si aucune règle de cache n'est définie. | La cache dynamique interroge le système de fichiers toutes les 30 secondes pour savoir si le fichier de règle de cache a été mis à jour. Ainsi, elle peut automatiquement mettre à jour les règles de cache qui ont changé. | Le cache dynamique est activé par défaut ; en effet, plusieurs composants système reposent sur le cache dynamique pour de meilleures performances. Vous pouvez désactiver le service de cache dynamique à l'aide du script wsadmin ou de la console d'administration. Pour plus d'informations sur l'activation du service de cache dynamique, reportez-vous à la rubrique consacrée à l'utilisation du service de cache dynamique. ATTENTION : Si vous désactivez le cache dynamique, les performances de la fonction de sécurité peuvent se dégrader car il utilise la fonctionnalité de mappage distribué du service de cache dynamique.
|
Définissez flush=true pour chaque balise <jsp:include> dans le fichier JSP pouvant être mis en cache. |
Limitation du cache dynamique lors de l'utilisation de la balise JSTL <c:import> pour inclure un fragment
Incident | Description | Action recommandée |
---|---|---|
Lorsqu'un fragment pouvant être mis en cache est inclus à l'aide de la balise <c:import> JavaServer Pages Standard Tag Library (JSTL), une partie du contenu de la page disparaît et une partie du contenu de la page s'affiche deux fois sur une réussite de cache. | Le cache dynamique est basé sur le vidage du contenu avant et après l'inclusion d'un fragment, de sorte que le contenu précédent l'instruction 'include' ne soient pas perdues et aussi pour empêcher l'ajout du contenu enfant dans le fragment parent. Cependant, dans le cas de la balise JSTL <c:import>, l'attribut flush=true, lequel vide l'éditeur parent avant l'appel du fragment enfant, n'est pas pris en charge. En outre, JSTL met les réponses en mémoire tampon, de sorte que l'éditeur enfant n'est pas vidé après le fragment enfant. Ainsi, la réponse enfant est placée dans le parent. Restriction :
Le cache dynamique renvoie plusieurs instructions d'inclusion lorsque la balise JSTL <c:import> est utilisée dans un fichier cache JSP (JavaServer Pages). |
Pour éviter ce problème, entourez l'instruction <c:import> avec les instructions de méthode out.flush comme suit :
|
Messages de bus d'intégration de services répétés
Les messages de bus d'intégration de services sont répétés dans les journaux des membres du cluster sur lequel réside une application de production.
Incident | Action recommandée |
---|---|
Dans un environnement multi-cellules, les messages suivants sont répétés dans les journaux des membres du cluster qui héberge l'application de production :
|
Vérifiez d'abord que chaque membre du bus d'intégration de services dans la cellule distante est démarré. Puis, vérifiez que le port SIB_ENDPOINT_ADDRESS est correctement spécifié pour chaque membre du bus d'intégration de services dans la cellule distante ou le groupe central. Si un port incorrect est indiqué, supprimez la configuration sortante "--setup=dynacacheOutSIB --delete..." et reconfigurez-la à l'aide du port correct. Si tout fonctionne correctement, un message similaire au message suivant est affiché dans les journaux :
|
Le composant de messagerie de plateforme ne peut pas authentifier l'ID utilisateur
Explications | Action recommandée |
---|---|
Dans un environnement multi-cellules, l'erreur suivante s'affiche pour un membre du bus d'intégration de services :
Ce message peut s'avérer déroutant car le service de cache dynamique n'utilise pas de bus sécurisés. |
Ce message peut indiquer l'un des problèmes suivants : Le serveur du bus d'intégration de services reçoit une requête pour une destination de bus qui n'existe pas. Assurez-vous que le nom de cellule distante correcte a été utilisé lors de l'exécution de "--setup=dynacacheOutSIB" et"--setup=dynacacheECA" dans la cellule d'envoi. Aucun membre de bus d'intégration de service n'est disponible. Ce problème se produit souvent car un cluster incorrect est spécifié pendant la configuration entrante "--setup=dynacacheInSIB". Vérifiez que le cluster du bus d'intégration de services est spécifié pour l'option "--cluster" et pas un autre cluster. |
L'ID unique du moteur de messagerie ne correspond pas à celui figurant dans le magasin de données
Explications | Action recommandée |
---|---|
Dans un environnement multi-cellules, l'erreur suivante s'affiche pour un membre du bus d'intégration de services :
|
Arrêtez le serveur, supprimez le répertoire dans WAS_INSTALL_ROOT\profiles\AppSrv01\filestores\com.ibm.ws.sib, qui correspond au membre du bus d'intégration de services et redémarrez le serveur. |
Le script dynacacheJMSSIB ne trouve pas le fichier DynacacheMessageHandler.ear
Explications | Action recommandée |
---|---|
Dans un environnement multi-cellules, le script dynacacheJMSSIB script ne peut pas localiser le fichier DynacacheMessageHandler.ear et le message suivant s'affiche dans le journal :
|
Exécutez le script dynacacheJMSSIB dans le répertoire WAS_INSTALL_ROOT/profiles/PROFILE_NAME/bin de sorte qu'il puisse localiser ../../../util/dynacacheJMSSIB.py et ../../../installableApps/DynacacheMessageHandler.ear dans leurs chemins respectifs. |