Configuración del proveedor de persistencia WSJPA

El proveedor de persistencia WebSphere Application Server (WSJPA) es el proveedor predeterminados para Java Persistence API (JPA) 2.0.

Acerca de esta tarea

Aunque se ha creado a partir del proveedor de persistencia Apache OpenJPA, el proveedor de persistencia JPA para WebSphere Application Server, WSJPA, contiene las mejoras y diferencias siguientes:
  • Soporte SQL estático mediante la función pureQuery de DB2
  • Soporte de intento de acceso
  • Soporte de rastreo ampliado
  • Generación de ID de versiones
  • Mandatos y scripts específicos del producto WebSphere
  • Archivos de mensajes traducidos
  • Compruebe si en las caché en memoria existen relaciones de muchos con uno o de uno con uno cargadas de forma diferida. El establecimiento de la propiedad wsjpa.BrokerImpl en true especifica que la implementación JPA intentará cargar los campos diferidos de memoria en tiempo de ejecución si los datos de clave foránea de los campos diferidos están disponibles. Utilice la propiedad siguiente:
    <property name="wsjpa.BrokerImpl" value="checkCacheForLazyFields=true"/> 
    Esta propiedad puede resultar útil en muchos escenarios. Por ejemplo, suponga que tiene una entidad de persona, Persona (A), que tiene una relación uno a uno con otra persona, Persona(B), y que la Persona(B) se almacena en la memoria caché de datos L2. Si esta propiedad se establece, cuando la implementación JPA encuentre Persona(A), la clave foránea que se ha cargado de Persona(A) se utilizará para rellenar la relación de Persona(A) a Persona(B).
  • La tabla siguiente muestra cómo los valores predeterminados de las propiedades de configuración del proveedor de persistencia JPA para WebSphere Application Server son distintas de las del proveedor Apache OpenJPA:
    Tabla 1. Comparación. Comparación del proveedor de persistenca JPA para WebSphere Application Server y del proveedor Apache OpenJPA
    Propiedad Valor predeterminado Apache OpenJPA Valor predeterminado del proveedor de persistencia JPA para WebSphere Application Server
    openjpa.Compatibility StrictIdentityValues=false StrictIdentityValues=true
    openjpa.RuntimeUnenhancedClasses no soportadas aviso
    openjpa.DynamicEnhancementAgent true false
    open.jdbc.DriverDataSource auto simple
Avoid trouble Avoid trouble: La propiedad de compatibilidad OpenJPA no elimina los tipos de proxy que genera OpenJPA para determinados tipos de datos, especialmente los tipos de fecha como, por ejemplo, GregorianCalendar. Esta omisión puede causar problemas con la deserialización. Si se produce un problema de deserialización, se emitirá un mensaje de error, parecido al siguiente:gotcha
El mensaje de error el: org.codehaus.jackson.map.JsonMappingException:
No se puede construir la instancia de org.apache.openjpa.util.java$util$GregorianCalendar$proxy, problema: no se ha encontrado ningún método de creador en [Origen: org.apache.http.conn.EofSensorInputStream@d83fbd5; línea: 1, columna: 4094]

Además de la alteración temporal de la propiedad, el uso del proveedor de persistencia JPA para WebSphere Application Server predeterminado también implica el uso de las clases de JPA para WebSphere Application Server siguientes que alteran temporalmente las clases correspondientes en 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 no se ha configurado ningún proveedor JPA en el elemento <provider> del archivo persistence.xml en un módulo Enterprise JavaBeans (EJB), se utiliza el proveedor JPA predeterminado que está configurado actualmente para este servidor. El producto está empaquetado con el proveedor de persistencia JPA para WebSphere Application Server definido como el proveedor predeterminado. Sin embargo, es posible alterar este valor predeterminado y especificar un valor predeterminado diferente mediante la consola administrativa.

Puede establecer el proveedor de persistencia predeterminado de dos maneras distintas.

Nota:

Si tiene un proveedor de persistencia predeterminado, el nombre JNDI (Java Naming and Directory Interface) Java del origen de datos JTA (Java Transaction API) y los valores predeterminados de nombre JNDI de origen de datos distinto a JTA que se establecieron en el producto antes de WebSphere Application Server Versión 7.0, a través de las propiedades de la máquina virtual Java (JVM), cualquier cambio en estos valores mediante la consola administrativa altera temporalmente los valores que se han establecido con las propiedades de la JVM.

Estas propiedades incluyen com.ibm.websphere.jpa.default.provider, com.ibm.websphere.jpa.default.jta.datasource y com.ibm.websphere.jpa.default.nonjta.datasource. Estas propiedades ya no reciben soporte. Cualquier valor que se haya definido a través de estas propiedades se visualiza como valor predeterminado en este panel. Estos valores que se han definido mediante el panel de la consola administrativa modifican los valores definidos a través de las propiedades de JVM.

Procedimiento


Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tejb_jpadefaultpp
File name: tejb_jpadefaultpp.html