Chargement préalable automatique de l'ObjectCache WSJPA

L'extension WSJPA (WebSphere Java™ Persistence API) vers OpenJPA fournit un ObjectCache en lecture seule qui permet d'améliorer les performances dans certains scénarios d'utilisation. Par défaut, les données de la mémoire cache sont chargées selon une méthode passive ; en d'autres termes, des entités individuelles sont chargées en mémoire lorsqu'elles sont demandées par une application. Cependant, si vous souhaitez charger toutes les entrées depuis le début, vous pouvez configurer le serveur d'applications de sorte qu'il précharge à partir de la base de données toutes les entités configurées dans l'ObjectCache. Le préchargement de l'ObjectCache vous permet de mettre en mémoire cache les entités qui seraient restreintes si vous chargiez l'ObjectCache à l'aide de la méthode passive. Cette configuration n'est prise en charge que lorsque vous utilisez WSJPA au niveau de spécification JPA 2.0.

Pourquoi et quand exécuter cette tâche

Lorsque vous activez le chargement automatique de l'ObjectCache, l'environnement JPA dimensionne et précharge automatiquement l'ObjectCache au lieu d'attendre que des entités uniques soient demandées par les applications. Quand le serveur d'applications crée le premier EntityManager, le processus de préchargement démarre et le serveur d'applications précharge à partir de la base de données toutes les entités configurées dans l'ObjectCache. Ce processus de préchargement a lieu de façon asynchrone dans une unité d'exécution de traitement distincte.
Eviter les incidents Eviter les incidents: Prenez connaissance des informations suivantes :
  • Pour les entités configurées pour résider dans l'ObjectCache, vous devez également configurer toutes les relations systématiques dans l'ObjectCache ; les relations passives ne seront pas disponibles.
  • Lors du préchargement de l'ObjectCache par le serveur d'applications, des entités sont extraites de la base de données. Le serveur d'applications n'ajoute pas dans l'ObjectCache des entités chargées par d'autres méthodes.
  • Le chargement automatique de la mémoire cache peut prendre longtemps si votre graphique d'objet est complexe.
  • Soyez attentif lorsque vous activez cette fonction, car elle risque de consommer la totalité de la mémoire disponible. Pour que cette fonction soit opérationnelle, l'environnement JPA doit avoir l'ensemble complet des données en mémoire.
gotcha
Une fois le processus de préchargement terminé, un message d'information similaire au suivant apparaît :
Chargement réussi de ObjectCache avec [...] entités en [...] secondes.

Procédure

  1. Paramétrez la propriété MaxSize sur auto pour l'ObjectCache. Par exemple, insérez l'entrée suivante dans votre fichier .properties :
    <property name="wsjpa.ObjectCache" value=”true(Types=com.ibm.wsjpa.Foo; com.ibm.wsjpa.Bar, MaxSize=auto)”/>
    La valeur par défaut de la propriété MaxSize est 1000 mais, lorsque vous lui affectez la valeur auto, le mécanisme de préchargement est activé.
  2. Facultatif : Vérifiez la valeur définie pour la propriété EvictionSchedule, qui est expliqué dans la rubrique Configuration de WSJPA ObjectCache pour améliorer les performances. Lorsque vous utilisez la propriété EvictionSchedule conjointement avec le paramètre MaxSize=auto, la propriété EvictionSchedule est implémentée différemment du comportement par défaut : au lieu d'effacer l'ObjectCache selon le planning configuré, l'ObjectCache est automatiquement rechargé.

Exemple

Les exemples suivants expliquent comment configurer l'ObjectCache pour qu'il se charge automatiquement :
  • La propriété suivante indique que l'ObjectCache est automatiquement chargé lorsque le serveur d'applications crée le premier EntityManager :
    <property name=" wsjpa.ObjectCache" value=”true(Types=com.ibm.wsjpa.Foo; com.ibm.wsjpa.Bar, MaxSize=auto)”/>
  • La propriété suivante indique que l'ObjectCache est automatiquement chargé lorsque le serveur d'applications crée le premier EntityManager, et l'ObjectCache sera rechargé toutes les 20 minutes :
    <property name=" wsjpa.ObjectCache" value=”true(Types=com.ibm.wsjpa.Foo; com.ibm.wsjpa.Bar,
     MaxSize=auto, EvictionSchedule=+20)”/>

Icône indiquant le type de rubrique Rubrique de tâche



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=tejb_jpaautoloadcache
Nom du fichier : tejb_jpaautoloadcache.html