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

- 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.
Chargement réussi de ObjectCache avec [...] entités en [...] secondes.
Procédure
Exemple
- 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)”/>