Configuration de WSJPA ObjectCache pour améliorer les performances
L'extension WSJPA (WebSphere Java™ Persistence API) d'OpenJPA fournit un cache d'objets en lecture seule qui peut améliorer les performances dans certains cas. Cette configuration est prise en charge uniquement lorsque vous utilisez WSJPA au niveau de spécification JPA 2.0.
Pourquoi et quand exécuter cette tâche
L'implémentation d'un objet WSJPA ObjectCache permet d'améliorer les performances d'une application qui comporte un ensemble de données utilisées dans le cadre d'une méthode en lecture seule statique, par exemple, en accédant à des zones persistantes de base et en conservant des relations unidirectionnelles vers un type en lecture seule. WSJPA ObjectCache est un cache non réparti d'entités en lecture seule qui fonctionne au niveau de l'objet EntityManagerFactory. Ces instances mises en cache sont partagées par tous les objets EntityManager dans la machine virtuelle Java, mais les instances ne sont gérées par aucun d'eux. Lorsque la fonction est activée, l'objet ObjectCache est examine avant que l'application accède à la base de données et l'objet OpenJPA DataCache, et les objets persistants sont chargés à partir de la base de données et stockés dans le cache d'objet OpenJPA. En outre, l'implémentation d'ObjectCache peut être utilisée avec les fonctions OpenJPA DataCache et QueryCache pour optimiser les performances.
- Insérez des types strictement en lecture seule du point de vue de l'application
- Le fait de transmettre un type en lecture seule dans les opérations suivantes génère une exception UnsupportedOperationException :
- La transmission d'une entité en lecture seule dans EntityManager.merge(…).
- La transmission d'une entité en lecture seule dans EntityManager.persist(…).
- La transmission d'une entité en lecture seule dans EntityManager.remove(…).
- L'appel d'une méthode setter sur un type en lecture seul retourné par l'exécution JPA WebSphere JPA génère un message d'erreur UnsupportedOperationException.
- Le fait de transmettre un type en lecture seule dans les opérations suivantes génère une exception UnsupportedOperationException :
- Les types qui sont inclus dans le cache d'objet ne peuvent pas être sélectionnés pour être mis en cache dans le cache de données OpenJPA. N'utilisez pas l'intersection des types qui peuvent être mis en cache par le cache OpenJPA L2 (openjpa.DataCache) ; l'ObjectCache ne doit pas être confondu avec le cache de second niveau défini par la spécification JPA 2.0. Si les types font l'objet d'une intersection, une exception est générée lors de la création de l'objet EntityManager.
- Insérez uniquement des zones de base, sinon une exception peut être générée lors de la création de l'objet EntityManager.
- La transmission d'une entité en lecture seule dans EntityManager.contains(…) renvoie toujours la valeur false, même si elle vient d'être renvoyée à la suite d'une opération de recherche/requête.
