Live By The Code

元業務系プログラマの呟き

JSR352(jbatch)

jbatchのジョブ管理用DBについて

ジョブ管理用DBとは jbatchでは、実行したジョブについて以下のような情報が履歴として残るようになっている。 ジョブプロパティ ジョブの開始時刻、終了時刻、終了ステータス 各ステップの処理件数、開始時刻、終了時刻、終了ステータス 履歴として随時参照…

jbatchのトランザクションのタイムアウト

jbatchではデフォルトでトランザクションに180秒のタイムアウトが設定されており、タイムアウトを超えると例外が発生してバッチが異常終了するようになっている。発生する例外は以下のような感じ。 com.sun.appserv.connectors.internal.api.PoolingExceptio…

JUnitを用いたジョブ単位のテスト

jbatchで書いたバッチについて、ジョブ単位でJUnitを使ってテストする手法について述べる。 ジョブの起動手段 jbatchジョブの起動手段(JobOperator#start()を呼び出す)としては、Webへのリクエストを起点にする他に、APサーバへのリモートEJB呼び出しを起…

Step間のインスタンス持ち回り

JavaEE7から新しく入ったバッチフレームワークの規格JSR352(だいたいjbatchと表記される)を最近よく弄っているので、気付いた点を若干纏めてみようと思う。 JSR352とは 概要は、既にいい感じにスライドとして纏められているこれを見ると非常にわかりやすい…

GlassFish4のJSR352(jbatch)のジョブ定義ファイルで日本語を使うと文字化け

ジョブ定義ファイルはこんな感じ <job id="mock" version="1.0" xmlns="http://xmlns.jcp.org/xml/ns/javaee"> <step id="step1"> <batchlet ref="mockBatchlet"> <properties> <property name="text" value="にほんご"/> </properties> </batchlet> </step> </job> Batchletはこんな感じ package finance.mo…