JPAWriterPattern
El patrón JPAWriterPattern se usa para escribir datos en una base de datos usando una conexión Java™ Persistence API (JPA).
Clases de soporte
La clase JPAWriter implementa las operaciones básicas de JPA para obtener una clase EntityManager y unir, iniciar y confirmar transacciones. De forma predeterminada la JPAWriter se une a una transacción global existente.
Empaquete un archivo persistence.xml que establece el atributo transaction-type para JTA y declara un elemento jta-data-source. También puede configurar la clase JPAWriter para iniciar y confirmar transacciones en sincronización con las transacciones globales. Estas transacciones se utilizan con elementos non-jta-data-source y URL de conexión. En este caso, el archivo persistence.xml establece el tipo de transacción en RESOURCE_LOCAL y declara un elemento non-jta-data-source o URL de conexión.
Propiedades obligatorias
Las propiedades siguientes son necesarias para el patrón.
Nombre de propiedad | Value |
---|---|
PATTERN_IMPL_CLASS | Clase que implementa la interfaz JPAWriterPattern |
PERSISTENT_UNIT | El nombre de unidad persistente de proveedor |
Propiedades JPA que se establecen en la clase EntityManager | El valor de estas propiedades |
Propiedades opcionales
Para el patrón las propiedades siguientes son opcionales.
Nombre de propiedad | Value | Descripción |
---|---|---|
debug | true o false (El valor predeterminado es false.) | Habilita el rastreo detallado en esta secuencia de datos por lotes. |
use_JTA_transactions | true o false (el valor predeterminado es true) | Si utiliza el elemento non-jta-data-source o los URL de conexión, establezca el valor en false. |
EnablePerformanceMeasurement | true o false (El valor predeterminado es false.) | Calcula el tiempo total invertido en las secuencias de datos por lotes y el método processRecord, si se utiliza GenericXDBatchStep. |
Definición de interfaz
public interface JPAWriterPattern {
/**
* Este método se invoca durante el paso de creación de trabajo para permitir que la
* secuencia JPAWriter se inicialice.
* @parámetro props Propiedades pasadas mediante xJCL
*/
public void initialize(Properties props);
/**
* Este método se invoca para persistir realmente el objeto pasado a la base de datos
* utilizando JPA EntityManager
* @parámetro manager
* @parámetro record
*/
public void writeRecord(EntityManager manager, Object record);
}
Ejemplo xJCL
<batch-data-streams>
<bds>
<logical-name>outputStream</logical-name>
<props>
<prop name="PATTERN_IMPL_CLASS" value="com.ibm.websphere.batch.samples.tests.bds.EchoWriter"/>
<prop name="PERSISTENT_UNIT" value="mypersistentU"/>
<prop name="debug" value="true"/>
</props>
<impl-class>com.ibm.websphere.batch.devframework.datastreams.patterns.JPAWriter</impl-class>
</bds>
</batch-data-streams>