See: Description
Interface | Description |
---|---|
DatabaseRecordListener |
DatabaseRecordReader で処理対象レコードをキャッシュするためのデータベースアクセス前に
コールバックされるメソッドを定義するインタフェース。 |
ValidatableFileDataReader.FileValidatorAction |
バリデーションを行うオブジェクトが実装するインタフェース。
このインタフェースに定義されたメソッドの他に、
以下のシグニチャを持ったメソッドをレコードタイプ毎に定義する必要がある。
このメソッドには、対象のレコードタイプに合わせたバリデーションロジックを実装する。 public Result "do" + [レコードタイプ名](DataRecord record, ExecutionContext ctx);
|
Class | Description |
---|---|
DatabaseRecordReader |
データベースの参照結果を1レコードづつ読み込むデータリーダ。
|
DatabaseTableQueueReader |
データベースのテーブルを擬似的にキューのように扱うデータリーダ。
本リーダはデータベースのテーブルをキューのように扱えるようにするため、
処理対象レコードが存在しない場合でも
#hasNext(nablarch.fw.ExecutionContext) は
常にtrue を返却し、処理対象が存在するように振る舞う。
これにより、データが存在しない場合でも#read(nablarch.fw.ExecutionContext) が呼び出され、
テーブルの最新情報を取得し直すことが可能となる。
本リーダは、処理対象レコードが存在しない場合、再度最新の情報を取得する。
この際に、他のスレッドで処理中のレコードが未処理のまま残っている可能性がある。
このため、各スレッドで処理中のレコードをヒープ上に保持し、
読み込んだ対象が他のスレッドで処理中のレコードではないことを確認する。
対象のレコードが、他のスレッドで処理中である場合には、次のレコードを読み込み再度チェックを行う。
対象のレコードが、他のスレッドで処理中でない場合には、読み込んだレコードをクライアントに返却する。 |
FileDataReader |
ファイルデータを1レコードづつ読み込み、
読み込んだフィールドの内容を
DataRecord にマッピングして返却するデータリーダ。
実際のレコード読み込み処理は、FileRecordReader に委譲する。
このクラスを使用するにあたって設定が必須となるプロパティの実装例を下記に示す。 |
ResumePointManager |
実行管理テーブルに格納されている、正常に処理できたポイントの参照・更新を行うクラス。
|
ValidatableFileDataReader |
ファイル内容のバリデーション機能を追加したデータリーダ。
ファイル全件の読み込みを行い、このリーダが提供する
ValidatableFileDataReader.FileValidatorAction に実装されたバリデーションロジックを
ValidatableFileDataReader.setValidatorAction(FileValidatorAction) から設定することができる。
バリデーションが正常終了した場合は、入力ファイルを開きなおして本処理を行う。また、 ValidatableFileDataReader.setUseCache(boolean) にtrue を設定することで、バリデーション時に読み込んだデータを
メモリ上にキャッシュし、都度2回の読み込みを1回に削減することができる。ただし、データ量によってはメモリリソースを大幅に消費する点に注意すること。 |