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 :
  • modifier la priorité des entrées de cache dont la régénération est coûteuse en termes de ressources système,
  • modifier le délai d'expiration des entrées pour qu'elles restent en mémoire tant qu'elles sont valides,
  • activer le déchargement sur le disque pour stocker des entrées LRU supprimées,
  • augmenter la taille du cache.

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.
  1. Notez l'emplacement du déchargement sur disque. Si vous ne connaissez pas cette information :
    1. sélectionnez Serveurs > Serveurs d'applications > nom_serveur > Services du conteneur > Service de cache dynamique dans l'arborescence de navigation de la console d'administration.
    2. L'emplacement figure dans la zone Déchargement sur le disque. Si l'emplacement n'est pas indiqué, le répertoire par défaut est racine_profil/temp/votre_noeud/nom_serveur/_dynacache.
  2. Assurez-vous de supprimer le serveur et de supprimer tous les fichiers du répertoire de déchargement.
  3. Si vous utilisez WebSphere Application Server, Network Deployment, supprimez les fichiers du cache-disque de chaque serveur.

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]

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 :
<% out.flush(); %>
<c:import url="DNCParent2.jsp" />
<% out.flush(); %> 

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 :
[time_stamp] CWSIT0007W: It is not possible to contact
 the bootstrap server at 
 9.9.9.9:7299:BootstrapBasicMessaging because of exception: 
 com.ibm.websphere.sib.exception.SIResourceException: 
 CWSIC1001E: 
A client attempted to connect with a remote messaging
 engine (9.9.9.9:7299 - BootstrapBasicMessaging) but
 the connection cannot be completed. Ensure the
 messaging engine is started: exception com.ibm.ws.sib
 .jfapchannel.JFapConnectFailedException: CWSIJ0063E: A 
 network connection to host name 9.9.9.9, port 7299 cannot be established...
[time_stamp] 00000023 SystemOut O RemoteInvalidator unable to connect to ...
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 :
[time_stamp] 0000000a RemoteInvalid I   
DYNA1075I: The "RemoteJMSInvalidator" external 
cache group is connected. The configured JNDI name
of the queue connection factory is 
"DynacacheDestination-cell2" and the JNDI name of 
the targeted destination is 
"jms/DynacacheOutBoundConnectionFactory-cell1".

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 :
[time_stamp] 00000022 SibMessage   E  [:] CWSII0050E: 
The Platform Messaging Component can not authenticate 
the user ID.
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 :
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS1535E: The messaging engine's unique id does not
 match that found in the data store. 
 ME_UUID=D520787E8CA7F18A, ME_UUID(DB)=980C0B42B3A904F3
[time_stamp] 0000002f SibMessage    I   
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS1546I: The messaging engine, 
 ME_UUID=D520787E8CA7F18A, INC_UUID=7228ea45e216f3ef,
 has lost an existing lock or failed to gain an initial
 lock on the data store.
[time_stamp] 0000002f SibMessage    I   
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS1519E: Messaging engine edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2 
 cannot obtain the lock on its data store, which ensures 
 it has exclusive access to the data.
[time_stamp] 0000002d SibMessage    E   
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS0002E: Le moteur de messagerie a rencontré une exception au démarrage. Exception : com.ibm.ws.sib.msgstore.
 PersistenceException: 
 CWSIS1501E: The data source has produced an unexpected
 exception: com.ibm.ws.sib.msgstore.persistence.
 DatasourceWrapperStateException: New connections cannot
 be provided because the persistence layer has been
 stopped	at com.ibm.ws.sib.msgstore.persistence.impl.
 PersistentMessageStoreImpl.start
 (PersistentMessageStoreImpl.java:188)
	at com.ibm.ws.sib.msgstore.impl.MessageStoreImpl.
   start(MessageStoreImpl.java:1175)
	at com.ibm.ws.sib.admin.impl.JsMessagingEngineImpl.
	 start(JsMessagingEngineImpl.java:491)

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 :
WASX7017E: Exception reçue lors de l'exécution du fichier 
"../../../util/dynacacheJMSSIB.py"; exception 
information: 
com.ibm.ws.scripting.ScriptingException: WASX7115E: 
Cannot read input file "/opt/WAS/6.1/cf270928.19
 /profiles/AppSrv01/logs/DynacacheMessageHandler.ear"
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.

Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdyn_trb
Nom du fichier : rdyn_trb.html