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.

Prenez connaissance des conditions et limitations suivantes :
  • 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.
  • 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.
Vous pouvez activer le cache d'objet pour un environnement JVM unique, spécifier les types qui sont inclus dans ce cache, définir la taille maximale des éléments qu'il peut contenir et indiquer les valeurs de délai d'attente.
Configurations prises en charge Configurations prises en charge: Le nom de propriété préféré est wsjpa.ObjectCache, mais openjpa.ObjectCache est également admis.sptcfg

Procédure

Que faire ensuite

Pour activer le chargement automatique de la totalité de l'ObjectCache lors de la création du premier objet EntityManager, suivez les étapes indiquées dans la rubrique Chargement préalable automatique de l'ObjectCache WSJPA. En outre, pour plus d'informations sur toutes les extensions de mise en cache, reportez-vous aux informations sur la mise en cache dans le document OpenJPA User Guide.

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_jpaobjectcache
Nom du fichier : tejb_jpaobjectcache.html