JPAWriterPattern
Le masque JPAWriterPattern est utilisé pour inscrire des données dans une base de données à l'aide d'une connexion JPA (Java™ Persistence API).
Classes prises en charge
La classe JPAWriter implémente les opérations JPA de base pour l'obtention d'une classe EntityManager et permet de joindre, démarrer et appliquer des transactions. Par défaut, la classe JPAWriter joint une transaction globale existante.
Conditionnez un fichier persistence.xml qui définit l'attribut transaction-type sur JTA et déclare un élément jta-data-source. Si vous le souhaitez, configurez la classe JPAWriter pour démarrer et appliquer des transactions en synchronisation avec les transactions globales. Ces transactions sont utilisées avec des éléments non-jta-data-source et des adresses de connexion. Dans ce cas, le fichier persistence.xml définit l'attribut transaction-type sur RESOURCE_LOCAL et déclare un élément non-jta-data-source ou des adresses URL de connexion.
Propriétés requises
Les propriétés suivantes sont requises pour le masque.
Nom de la propriété | valeur |
---|---|
PATTERN_IMPL_CLASS | Classe implémentant l'interface JPAWriterPattern |
PERSISTENT_UNIT | The provider persistent unit name |
Propriétés JPA que vous définissez sur la classe EntityManager | Valeur de ces propriétés |
Propriétés facultatives
Les propriétés suivantes sont optionnelles pour le masque.
Nom de la propriété | valeur | Description |
---|---|---|
debug | true ou false (la valeur par défaut est false.) | Active le traçage détaillé sur ce flux de données par lots. |
use_JTA_transactions | true ou false (la valeur par défaut est true.) | Si vous utilisez l'élément non-jta-data-source ou des adresses URL de connexion, définissez la valeur sur false. |
EnablePerformanceMeasurement | true ou false (la valeur par défaut est false.) | Calcule le temps écoulé dans les flux de données par lots et la méthode processRecord, si vous utilisez GenericXDBatchStep. |
Définition de l'interface
public interface JPAWriterPattern {
/**
* This method is invoked during create job step to allow the JPAWriter stream to
* initialize.
* @param props Properties passed via xJCL
*/
public void initialize(Properties props);
/**
* This method is invoked to actually persist the passed object to the database
* using JPA EntityManager
* @param manager
* @param record
*/
public void writeRecord(EntityManager manager, Object record);
}
Exemple 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>