目次 > 第1章 概要 > 1.6 バッチフレームワーク概略
1.6 バッチフレームワーク概略
フレームワーク構造
入力処理と出力処理の間は、キューによりデータの受け渡しを行う。
フレームワークが規定しているクラス構造
Batch版では、Springフレームワークを拡張し、以下の機能や仕組みを提供する。
- フレームワークによるトランザクション管理機能
- J2SE/JDBCの知識がなくともデータベースアクセスが可能な機能
- CSV形式、固定長形式、可変長形式のファイルに対応したファイルアクセス機能
- ジョブの処理対象データを取得する機能
- POJO及び定型インタフェースを持つ業務ロジックを起動する仕組み
次に、Batch版が提供するクラスについて説明していく。
(1) BLogic
ビジネスロジックを実行するインタフェース。
Collectorで取得された処理対象データクラスとJobContext抽象クラスを実装したジョブコンテキストが入力となる。
また、ビジネスロジック処理結果のBLogicResultを返却する。
(2) BLogicResult
ビジネスロジックの結果情報を保持するクラスである。
前処理・後処理、コントロールブレイクハンドラでも使用される。
(3) JobContext
ビジネスロジック、前処理・後処理およびCollectorで共有される抽象クラス。
個別のジョブを定義する際に、開発者がそのジョブの引継ぎ情報の項目に対応して実装する。
(4) ReturnCode
フレームワークの処理継続を決定する列挙型クラス。BLogicResultに設定する。
フレームワークでは下記の返却コードを提供する。
- NORMAL_CONTINUE
- 処理を継続する。通常はこの返却コードを返却する。最後の入力パラメータである場合にはトランザクションをコミットし、ジョブを正常終了する。
- NORMAL_END
- 対象データの途中で処理を終了させたい場合に返却する。トランザクションをコミットし、ジョブを正常終了する。(分割ジョブである場合には、子ジョブのみ終了する。)
- ERROR_CONTINUE
- エラーデータとしてログ出力を行い、処理を継続する。ビジネスロジックが含まれるトランザクションには影響を与えない。
- ERROR_END
- エラーメッセージをログに出力し、ジョブを終了する。トランザクションはロールバックされる。(分割ジョブである場合には、子ジョブのみ終了する。)
(5) SupportLogic
ジョブ前処理・ジョブ後処理および先頭チャンク前処理・最終チャンク後処理を実行するインタフェース。
ジョブコンテキストを受け取り、ビジネスロジック処理結果のBLogicResultを返却する処理を実装する。
(6) DAO
データベースにアクセスするオブジェクトのインタフェースが4種類(QueryDAO、UpdateDAO、StoredProcedureDAO,queryRowHandleDAO)用意されており、
ファイルにアクセスするオブジェクトのインタフェースが2種類(FileQueryDAO、FileUpdateDAO)用意されている。
データベース接続等のJDBCリソースの取得と開放はフレームワーク側が行うため、フレームワーク利用者が意識する必要はない。
- QueryDAO
- 参照系のデータベースアクセスを行うDAOインタフェース。
- UpdateDAO
- 更新系のデータベースアクセスを行うDAOインタフェース。
- StoredProcedureDAO
- ストアドプロシージャを実行するDAOインタフェース。
- queryRowHandleDAO
- 大量データを扱う場合に利用するDAOインタフェース。
- FileQueryDAO
- 参照系のファイルアクセスを行うDAOインタフェース。
- FileUpdateDAO
- 更新系のファイルアクセスを行うDAOインタフェース。