Identificateurs de cache
Lorsque le service de mémoire cache dynamique place un objet en mémoire cache, il lui affecte une chaîne d'identification unique appelée ID de cache. Les ID de cache sont générés selon les règles <cache-id> définies dans les éléments <cache-entry>. Les règles <cache-id> définissent comment générer les ID de cache à partir des informations associées à une demande de serveur d'applications request.
<cache-id> est formée à partir d'une liste de <components>. Il existe différents types de composant disponibles pour générer ces ID de cache.
DC_RequestAttributes
Un filtre de servlet appelé filtre de cache permet au cache dynamique d'utiliser les informations de session pour créer l'ID de cache. Ce filtre de cache est conçu pour définir les attributs de requête à partir des données de session, MemberGroupsCacheCmd, et stocker des informations concernant les relations. Le cache dynamique peut utiliser les attributs de requêtes comme composants (éléments 'component').
Pour accéder à ces composants, indiquez "attribute" comme type de "component" et utilisez comme valeur l'une des valeurs DC définies.
Le tableau suivant répertorie les attributs de requête définis par le filtre de cache :
| Attributs de requête | Description |
|---|---|
DC_curr |
Devise préférée de l'utilisateur |
DC_lang |
Langue préférée de l'utilisateur |
DC_cont |
Contrat en cours de l'utilisateur |
DC_storeId |
ID d'entrepôt |
DC_userId |
Identificateur de l'utilisateur |
DC_userType |
Type d'utilisateur connecté (G/R/S) |
DC_storeIdentifier |
Identificateur de magasin |
Appels de méthode de type Session
Les ID de cache sont formés à partir des valeurs qui se trouvent dans la session WebSphere Application Server. Pour accéder à ces valeurs, indiquez 'session' comme type de composant (component) et utilisez comme valeur le nom de l'objet dans la session.
Cookies
Les composants ID de cache peuvent accéder aux valeurs des cookies ayant une appellation. Pour accéder à l'un de ces cookies dans un composant, indiquez "cookie" comme type de composant, et, comme valeur, le nom du cookie.
L'utilisation de cookies limite l'utilisation de ce composant à des scénarios faisant appel au Web. Vous ne pourrez pas l'utiliser avec d'autres protocoles, tels que les services Web.
La mise en mémoire cache ESI n'accepte pas d'attributs de requête. Dans ce cas, les cookies se révèlent utiles pour stocker des informations de session (ID de langue, ID de devise préférée, Organisation parent, ID de contrat et groupe de membres).
Appels de méthode de type Contexte d'instruction (CommandContext)
Il est possible d'accéder aux paramètres disponibles dans le CommandContext. Plus précisément, vous pouvez appeler des méthodes sur l'objet CommandContext afin de pouvoir accéder à des valeurs qui ne seraient pas normalement disponibles.
Pour ce faire, affectez au composant le type "attribute", et, en plus de l'élément enfant requis, ajoutez un élément enfant appelé "method". Ce dernier identifie la méthode démarrée. Vous pouvez utiliser des balises "method" imbriquées.
isSecure() est une méthode CommandContext importante. Il est important de mettre en cache des entrées distinctes pour les pages affichées en mode SSL et celles affichées en mode non-SSL, afin de garantir que les liens sont au format correct (par exemple, que les pages SSL sont liées à d'autres pages SSL). Faute de quoi, il se peut que des liens d'une page SSL pointent vers des pages non-SSL, ce qui provoque l'affichage d'une fenêtre d'avertissement en incrustation.
Voici l'équivalent de CommandContext.getter1().getter2() :
<component id="CommandContext" type="attribute">
<required>true</required>
<method>getter1
<method>getter2</method>
</method>
</component>
Voici un exemple d'attribut isSecure :
<cache-id>
<component id="" type="pathinfo">
<required>true</required>
<value>/ProductDisplay</value>
</component>
<component id="productId" type="parameter">
<required>true</required>
</component>
<component id="DC_storeId" type="attribute">
<required>true</required>
</component>
<component id="DC_lang" type="attribute">
<required>true</required>
</component>
<component id="CommandContext" type="attribute">
<method>isSecure</method>
<required>true</required>
</component>
</cache-id>