Eléments d'entrée de cache

L'élément racine du fichier cachespec.xml, <cache>, contient des éléments <cache-entry>. Le service de cache dynamique WebSphere analyse le fichier cachespec.xml au démarrage et extrait un jeu de paramètres de configuration de chaque élément <cache-entry>.

Les sections ci-dessous expliquent d'autres éléments <cache-entry> tels que <timeout> et <priority>, qui configurent des informations telles que la stratégie d'expiration et d'éviction du cache.

Notes:
  1. Pour une liste complète des propriétés, voir la rubrique cachespec.xml.
  2. La propriété do-not-cache peut être utilisée. Vérifiez les informations détaillées concernant le .

Class

<class>servlet | command</class>

L'élément <class> est obligatoire. Il régit la manière dont le serveur d'applications interprète la définition restante de la stratégie de mise en cache. La valeur servlet indique que la stratégie de mise en cache définit les règles de mise en cache pour un servlet ou une page JSP (JavaServer Page) déployé dans le moteur de servlet WebSphere Application Server. La commande de valeur indique que la stratégie de mise en cache définit les règle de mise en cache pour une classe qui met en œuvre l'interface Java CacheableCommand de WebSphere.

Exemples d'élément <class> :

<class>command</class>
<class>servlet</class>
Note: Si les commandes HCL Commerce implémentent l'interface Java CacheableCommand, presque toutes les commandes s'étendent aussi à partir de la classe Java AbstractECTargetableCommand. Cette classe n'implémentant pas l'interface sérialisable qui s'exécute sur Java, il est impossible de mettre ces instructions en mémoire cache. Toutefois, elles peuvent servir à générer des ID d'invalidation de mise en cache, comme spécifié par l'élément <invalidation>. Pour plus de détails, reportez-vous à l'utilitaire de nettoyage de base de données.

Nom

<name>classname</name>

L'élément <name> est obligatoire. classname spécifie le nom complet de la classe de la commande ou du servlet. Il existe deux manières d'utiliser l'élément <name> pour spécifier un objet pouvant être mis en cache :

  • Pour les instructions, classname doit spécifier le nom de classe complet, y compris le nom du module, le cas échéant, et le nom de classe, ainsi que le qualificateur de classe de fin, de l'objet configuré.
  • Pour les servlets ou fichiers JSP, cet élément doit inclure soit le nom qualifié complet du servlet, soit l'URI complet de la page JSP.

Vous pouvez spécifier plusieurs éléments <name> au sein d'une même entrée de cache <cache-entry> si différents mappages font référence au même servlet. Exemples d'élément <name> :

<name>com.ibm.commerce.dynacache.commands.MemberGroupsCacheCmdImpl.class</name>
<name>com.ibm.commerce.struts.ECActionServlet.class</name>
<name>com.ibm.commerce.struts.v2.ECActionServlet.class</name>
<name>/ToolTech/ShoppingArea/CatalogSection/CategorySubsection/StoreCatalogDisplay.jsp</name>

Propriété

<property name="key">value</property>

key est le nom de la propriété en cours de définition et value, la valeur correspondante.

Le tableau suivant contient les propriétés utilisées par HCL Commerce lors de la définition des règles de mise en cache concernant les servlets.

Propriété Valeurs valides Valeurs par défaut Description
EdgeCacheable

true false

false Si cette propriété est vraie, le servlet ou le fichier JSP concerné est disponible en mode externe à partir d'un serveur Edge. Que le servlet ou le fichier JSP puisse ou non être mis en mémoire cache dépend du reste de la spécification de la mise en cache.
consume-subfragments

true false

false Lorsqu'un servlet est mis en cache, seul le contenu de ce servlet est stocké, avec des marques de réservation pour tous les autres fragments dans lesquels il effectue des inclusions ou des réacheminements. L'élément consume-subfragments (CSF) indique au cache de ne pas arrêter la sauvegarde de contenu lorsqu'il comporte un servlet enfant. L'entrée parent (identifiée par CSF) inclut la totalité du contenu de tous les fragments dans son entrée de cache, produisant une seule entrée de cache volumineuse sans inclusion ni réacheminement et contenant toute l'arborescence des entrées. Cet élément peut diminuer considérablement le traitement par le serveur d'applications mais il est généralement utile uniquement lorsque la requête HTTP externe contient toutes les informations nécessaires pour déterminer l'ensemble de l'arborescence des fragments inclus.
save-attributes

true false

true Lorsque cette propriété est définie par false, les attributs de requête ne sont pas sauvegardés avec l'entrée de cache.
store-cookies

true false

true Lorsque cette propriété est définie par false, les cookies de requête ne sont pas sauvegardés avec l'entrée de cache.
alternate_url Spécifie l'URL de remplacement utilisée pour appeler le servlet ou le fichier JSP. Cette propriété est ignorée sauf si la propriété EdgeCacheable est également définie pour l'entrée de cache.
do-not-consume

true false

false Lorsque cette propriété est définie par true, le fragment ne sera pas consommé par l'entrée parent associé à la propriété consume-subfragments.
persist-to-disk

true false

true Lorsque cette propriété est définie par false, l'entrée de cache n'est pas écrite sur le disque lorsqu'un dépassement de capacité ou un arrêt du serveur se produit. La valeur par défaut "true" est recommandée pour les données à longue durée de vie qui peuvent être réutilisées par de nombreux clients. Toutefois, pour des raisons de performances et de confidentialité, il est généralement déconseillé de conserver des données relatives aux utilisateurs sur le disque.

Exemples d'élément <property> :

<property name="consume-subfragments">true</property>
<property name="save-attributes">false</property>
<property name="store-cookies">false</property>
Note: Par défaut, le service de mise en cache dynamique met en cache tous les cookies et attributs de requête (lorsque la mise en cache résulte de l'exécution d'un servlet ou d'un fichier JSP) avec les résultats mis en cache. Toutefois, les cookies et attributs de requête HCL Commerce contiennent des informations spécifiques de l'utilisateur qui ne doivent pas être mises en cache. C'est pourquoi les éléments <property> suivants doivent être spécifiés pour un élément <cache-entry> de servlet :
<property name="save-attributes">false</property>
<property name="store-cookies">false</property>
Et c'est aussi pourquoi l'élément <property> suivant doit être spécifié pour un élément <cache-entry> JSP :
<property name="save-attributes">false</property>