JPAWriterPattern
JPAWriterPattern パターンは、Java™ Persistence API (JPA) 接続を使用してデータベースにデータを書き込むために使用されます。
サポートされるクラス
JPAWriter クラスは、EntityManager クラスの取得、およびトランザクションの結合、開始、およびコミットを行う基本 JPA 操作を実装します。 デフォルトでは、JPAWriter は既存のグローバル・トランザクションと結合されます。
transaction-type 属性が JTA に設定された persistence.xml ファイルをパッケージして、jta-data-source エレメントを宣言してください。オプションで、トランザクションをグローバル・トランザクションと同期させて開始およびコミットするように、JPAWriter クラスを構成します。 これらのトランザクションは、non-jta-data-source エレメントおよび接続 URL とともに使用されます。この場合、persistence.xml ファイルは transaction-type を RESOURCE_LOCAL に設定し、non-jta-data-source エレメントまたは接続 URL を宣言します。
必須プロパティー
以下は、このパターンの必須のプロパティーです。
プロパティー名 | 値 |
---|---|
PATTERN_IMPL_CLASS | JPAWriterPattern インターフェースを実装するクラス |
PERSISTENT_UNIT | プロバイダーのパーシスタント単位名 |
EntityManager クラスで設定する JPA プロパティー | これらのプロパティーの値 |
オプション・プロパティー
以下は、このパターンのオプションのプロパティーです。
プロパティー名 | 値 | 説明 |
---|---|---|
debug | true または false (デフォルトは false) | このバッチ・データ・ストリームに対する詳細トレースを使用可能にします。 |
use_JTA_transactions | true または false (デフォルトは true) | non-jta-data-source エレメントまたは接続 URL を使用する場合には、この値を false に設定します。 |
EnablePerformanceMeasurement | true または false (デフォルトは false) | GenericXDBatchStep を使用している場合に、バッチ・データ・ストリームおよび processRecord メソッドに費やされた合計時間を計算します。 |
インターフェース定義
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);
}
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>