Mémoire cache de ressources

Personalization utilise le service WebSphere Application Server Dynamic Cache pour mettre en mémoire cache les résultats des règles sélectionnées ainsi que les règles elles-mêmes dans une mappe de répartition. Lors des opérations de publication, d'importation ou d'enregistrement de règles, la mémoire cache est vidée automatiquement afin de garantir l'actualisation du site.

Paramètres de configuration disponible pour les règles de mise en cache

Le fichier PersonalizationService.properties contient le jeu de paramètres du contrôle de la mémoire cache. Le tableau suivant récapitule les paramètres de configuration disponibles pour la mise en mémoire cache.

Tableau 1. PersonalizationService.properties propriétés et descriptionsChaque propriété PersonalizationService est répertoriée par nom et est décrite.
Propriété Description
rulesEngine.cache.enabled Ce paramètre permet de désactiver le cache général. Si la valeur false lui est attribuée, ce paramètre redéfinit tous les éléments pour lesquels la mise en cache est définie individuellement.
rulesEngine.cache.jndiName Mappe de répartition de Dynamic Cache à utiliser, comme l'indique son nom JNDI.
rulesEngine.cache.maxEnumSize Vous pouvez utiliser WebSphere® Integrated Solutions Console pour configurer l'élément DistributedMap et limiter le nombre maximal d'entrées dans la mémoire cache. La collection de ressources renvoyée pour chaque règle est comptabilisée comme une seule entrée dans la mémoire cache. Lorsque qu'une règle renvoie un ensemble de résultats volumineux, la mise en mémoire cache de ces résultats peut entraîner une utilisation supplémentaire de la mémoire. C'est pourquoi, lorsque l'ensemble de résultats d'une règle dépasse le nombre défini dans cette propriété, il ne peut pas être placé dans la mémoire cache.
rulesEngine.cache.timeout Le temps écoulé, en secondes, avant l'expiration d'une entrée placée dans la mémoire cache.
rulesEngine.cache.priority La priorité d'une entrée dans la mémoire cache par rapport aux autres entrées de la même mappe de répartition.
rulesEngine.cache.enabled.collectionName Identique à rulesEngine.cache.enabled, si ce n'est que cette propriété s'applique à une collection de ressources spécifique. La variable collectionName est le chemin complet vers la collection de ressources dans Personalization. Par exemple, la collection de ressources GeneralNews qui est incluse dans l'exemple de dossier appelé PznDemo porte le collectionName de /PznDemo/GeneralNews.
rulesEngine.cache.jndiName.collectionName Identique à rulesEngine.cache.jndiName, si ce n'est que cette propriété s'applique à une collection de ressources spécifique.
rulesEngine.cache.maxEnumSize.collectionName Identique à rulesEngine.cache.maxEnumSize, si ce n'est que cette propriété s'applique à une collection de ressources spécifique.
rulesEngine.cache.timeout.collectionName Identique à rulesEngine.cache.timeout, si ce n'est que cette propriété s'applique à une collection de ressources spécifique.
rulesEngine.cache.priority.collectionName Identique à rulesEngine.cache.priority, si ce n'est que cette propriété s'applique à une collection de ressources spécifique.

Mise en cache des règles métier pour les ressources

Il est possible que vous deviez vider la mémoire cache de personnalisation via un programme, notamment lorsqu'une ressource est mise à jour par une autre application, en dehors des règles de personnalisation. Une interface de programmation est fournie en vue de vider la mémoire cache. Le délai de temporisation de la mémoire cache peut être défini dans le fichier de propriétés et il peut s'avérer pertinent d'attendre ce délai avant de visualiser les mises à jour. La classe com.ibm.websphere.personalization.resources.cache.CacheManager permet d'invalider la mémoire cache pour une ressource donnée ou une collection de ressources donnée, ou d'invalider l'ensemble de la mémoire cache. Personalization utilise cette classe en interne, pour vider la mémoire cache lors des mises à jour. Une fonction d'effacement automatique d'entrée de cache est désormais activée par défaut afin d'effacer automatiquement les entrées de cache qui sont affectées par un changement de contenu.

Vider la mémoire cache pour une ressource donnée peut nécessiter de vider l'ensemble des requêtes mises en mémoire cache. Vider la mémoire cache pour une collection peut vider la mémoire cache pour toutes les collections qui utilisent la même mappe de mémoire cache dynamique. Si l'application vide régulièrement la mémoire cache pour une collection donnée, vous obtiendrez une meilleure utilisation de la mémoire cache en isolant cette collection dans sa propre mappe de mémoire cache à l'aide de la propriété ruleEngine.cache.jndiName.resourceCollectionNamer.

La mise en mémoire cache s'effectue avant l'appel de toute sortie de règle.

For information about the DistributedMap and DistributedObjectCache interfaces for the dynamic cache, refer to the IBM® WebSphere® Application Server documentation.