Utilisation du service de cache dynamique
Utilisez le service de cache dynamique pour améliorer les performances des applications en mettant en cache la sortie des servlets, des services web et des commandes WebSphere Application Server dans la mémoire.
Avant de commencer
Pourquoi et quand exécuter cette tâche
Procédure
- Cliquez sur Serveurs > Types de serveurs > Serveurs d'applications WebSphere > nom_serveur > Services du conteneur > Service de cache dynamique.
- Configurez l'instance de cache par défaut ou suivez les liens pour activer la mise en cache du servlet ou du portlet. Pour plus d'informations sur les paramètres de cache par défaut, reportez-vous à l'article Paramètres du service de cache dynamique.
Exemple
L'exemple ci-dessous regroupe toutes les étapes de configuration du service de cache dynamique à l'aide du fichier cachespec.xml, afin de présenter l'utilisation des règles de génération d'ID cache, des ID de dépendance et des règles d'invalidation.
Supposons qu'un servlet gère un simple site d'actualités. Ce servlet utilise le paramètre de requête "action" pour déterminer si la demande est utilisée pour la "visualisation" des actualités (paramètre de visualisation "view") ou pour la "mise à jour" des actualités (paramètre de visualisation "update", utilisé par l'administrateur). Un autre paramètre de requête "catégorie" sélectionne la catégorie d'actualités. Supposons que ce site prend en charge un format personnalisé facultatif qui est stocké dans la session de l'utilisateur à l'aide du nom d'attribut "layout" (format). Voici des exemples de requêtes URL adressées à ce servlets :
- http://votrehôte/votreappweb/newscontroller?action=view&category=sports (Renvoie une page d'actualités pour la catégorie sports)
- http://votrehôte/votreappweb/newscontroller?action=view&category=money (Renvoie une page d'actualités pour la catégorie money (argent))
- http://votrehôte/votreappweb/newscontroller?action=update&category=fashion (Permet à l'administrateur de mettre à jour les actualités dans la catégorie fashion (mode))
Les étapes suivantes illustrent la façon de configurer le service de cache dynamique pour cet exemple avec le fichier cachespec.xml.
- Définissez les éléments d'entrée de cache (<cache-entry>) nécessaires à l'identification du servlet. Dans ce cas, l'URI du servlet est "newscontroller", ce qui va être l'élément nom (<name>) de l'entrée de cache. Etant donné que cet exemple met en cache un servlet ou un fichier JSP (JavaServer Pages), la classe d'entrée de cache est "servlet".
<cache-entry> <name> /newscontroller </name> <class>servlet </class> </cache-entry>
- Définissez des règles de génération d'ID cache. Ce servlet est mis en cache uniquement lorsque action=view (visualisation) ; par conséquent, un composant de l'ID cache correspond au paramètre "action" lorsque celui-ci a pour valeur "view" (visualisation"). La catégorie d'actualités est également une composante essentielle de l'ID cache. L'attribut de session facultatif du format de l'utilisateur est inclus dans l'ID cache. L'entrée de cache est désormais la suivante :
<cache-entry> <name> /newscontroller </name> <class>servlet </class> <cache-id> <component id="action" type="parameter"> <value>view</value> <required>true</required> </component> <component id="category" type="parameter"> <required>true</required> </component> <component id="layout" type="session"> <required>false</required> </component> </cache-id> </cache-entry>
- Définissez des règles d'ID de dépendance. Dans le cas de ce servlet, un ID de dépendance est ajouté pour la catégorie. Ultérieurement, lorsque la catégorie est invalidée en raison d'un événement de mise à jour, toutes les vues de cette catégorie d'actualités sont invalidées.
Voici l'exemple d'entrée de cache après l'ajout de l'ID de dépendance :
<cache-entry> <name>newscontroller </name> <class>servlet </class> <cache-id> <component id="action" type="parameter"> <value>view</value> <required>true</required> </component> <component id="category" type="parameter"> <required>true</required> </component> <component id="layout" type="session"> <required>false</required> </component> </cache-id> <dependency-id>category <component id="category" type="parameter"> <required>true</required> </component> </dependency-id> </cache-entry>
- Définissez des règles d'invalidation. Dans la mesure où un ID de dépendance de catégorie est déjà défini, définissez une règle d'invalidation pour invalider la catégorie lorsque action=update (mise à jour). Pour incorporer la logique conditionnelle, ajoutez des composants "ignore-value" dans la règle d'invalidation. Ces composants ne s'ajoutent pas à la sortie de l'ID d'invalidation mais déterminent uniquement si l'ID d'invalidation est créé et exécuté. L'entrée de cache définitive se présente désormais de la façon suivante :
<cache-entry> <name>newscontroller </name> <class>servlet </class> <cache-id> <component id="action" type="parameter"> <value>view</value> <required>true</required> </component> <component id="category" type="parameter"> <required>true</required> </component> <component id="layout" type="session"> <required>false</required> </component> </cache-id> <dependency-id>category <component id="category" type="parameter"> <required>true</required> </component> </dependency-id> <invalidation>category <component id="action" type="parameter" ignore-value="true"> <value>update</value> <required>true</required> </component> <component id="category" type="parameter"> <required>true</required> </component> </invalidation> </cache-entry>