Configuration du fournisseur de persistance WSJPA

Le fournisseur de persistance WebSphere Application Server (WSJPA) est le fournisseur de persistance par défaut de Java Persistence API (JPA) 2.0.

Pourquoi et quand exécuter cette tâche

Lorsqu'il est généré à partir du fournisseur de persistance Apache OpenJPA, le fournisseur de persistance JPA pour WebSphere Application Server, WSJPA, contient les améliorations et les différences suivantes :
  • Prise en charge SQL statique à l'aide de la fonction DB2 pureQuery
  • Prise en charge de la tentative d'accès
  • Prise en charge de la fonction de trace améliorée
  • Génération d'ID version
  • Commandes et scripts spécifiques au produit WebSphere
  • Fichiers de messages traduits
  • Vérification des mémoires cache à la recherche de relations plusieurs à un ou un à un chargées de façon passive. Le fait d'affecter la valeur true à la propriété wsjpa.BrokerImpl signifie que l'implémentation JPA tente de charger de zones passives de la mémoire au moment de l'exécution si les données de clé externe pour les zones passives sont disponibles. Utilisez la propriété suivante :
    <property name="wsjpa.BrokerImpl" value="checkCacheForLazyFields=true"/> 
    Cette propriété peut être utile dans de nombreux scénarios. Par exemple, supposons que vous avez une entité de personne, Person(A), qui a une relation un à un avec une autre personne, Person(B), et que Person(B) est stocké dans la mémoire cache de données L2. Si cette propriété est définie, lorsque l'implémentation JPA trouve Person(A), la clé externe chargée à partir de Person(A) servira à remplir la relation de Person(A) à Person(B).
  • Le tableau suivant indique ce qui différencie les valeurs par défaut des propriétés de configuration du fournisseur de persistance JPA pour WebSphere Application Server de celles du fournisseur Apache OpenJPA :
    Tableau 1. Comparaison. Comparaison entre le fournisseur de persistance JPA pour WebSphere Application Server et le fournisseur Apache OpenJPA
    Propriété Valeur par défaut Apache OpenJPA Valeur par défaut du fournisseur de persistance JPA pour WebSphere Application Server
    openjpa.Compatibility StrictIdentityValues=false StrictIdentityValues=true
    openjpa.RuntimeUnenhancedClasses non prise en charge avertissement
    openjpa.DynamicEnhancementAgent true false
    open.jdbc.DriverDataSource auto simple
Eviter les incidents Eviter les incidents: La propriété de compatibilité OpenJPA ne supprime pas les types de proxy qu'OpenJPA génère pour certains types de données, plus particulièrement les types de données, tels GregorianCalendar. Cette omission peut provoquer des problèmes de désérialisation. Le cas échéant, un message d'erreur du type suivant est émis :gotcha
Error Message is:org.codehaus.jackson.map.JsonMappingException: 
Can not construct instance of org.apache.openjpa.util.java$util$GregorianCalendar$proxy, 
problem: no suitable creator method found at 
[Source: org.apache.http.conn.EofSensorInputStream@d83fbd5; line: 1, column: 4094]

Outre le remplacement des propriétés, l'utilisation du fournisseur de persistance JPA pour WebSphere Application Server par défaut implique également d'utiliser les classes JPA pour WebSphere Application Server suivantes afin de remplacer les classes correspondantes dans Apache OpenJPA :

com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager;
com.ibm.ws.persistence.jdbc.kernel.WsJpaJDBCBrokerFactory;
com.ibm.ws.persistence.jdbc.sql.DB2Dictionary;
com.ibm.ws.persistence.jdbc.sql.OracleDictionary;
com.ibm.ws.persistence.jdbc.sql.SQLFactoryImpl;
com.ibm.ws.persistence.jdbc.sql.SQLServerDictionary;
com.ibm.ws.persistence.kernel.WsJpaBrokerImpl;
com.ibm.ws.persistence.kernel.WsJpaFinalizingBrokerImpl;

Si aucun fournisseur JPA n'est configuré dans l'élément <provider> du fichier persistence.xml d'un module EJB (Enterprise JavaBeans), le fournisseur JPA par défaut qui est actuellement configuré pour ce serveur est utilisé. Le produit est associé au fournisseur de persistance JPA pour WebSphere Application Server défini comme le fournisseur par défaut. Il est toutefois possible de remplacer cette valeur par défaut et d'indiquer une valeur par défaut différente via la console d'administration.

Vous pouvez définir votre fournisseur de persistance par défaut de deux manières.

Remarque :

Si vous disposez d'un fournisseur de persistance par défaut, d'un nom JNDI par défaut (Java Naming and Directory Interface) de la source de données JTA (Java Transaction API) et d'un nom JNDI par défaut de la source de données non JTA, qui ont été définis dans le produit avant WebSphere Application Server version 7.0 via les propriétés de la machine virtuelle Java (JVM), les modifications apportées à ces valeurs par le biais de la console d'administration remplacent les valeurs définies via les propriétés JVM.

Ces propriétés incluent com.ibm.websphere.jpa.default.provider, com.ibm.websphere.jpa.default.jta.datasource et com.ibm.websphere.jpa.default.nonjta.datasource. Ces propriétés ne sont plus prises en charge. Toutes les valeurs qui ont été définies via ces propriétés sont affichées en tant que valeurs par défaut sur ce panneau. Ces valeurs, qui sont définies par l'intermédiaire du panneau de la console d'administration, remplacent les valeurs définies via les propriétés JVM.

Procédure


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_jpadefaultpp
Nom du fichier : tejb_jpadefaultpp.html