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) が呼び出され、
テーブルの最新情報を取得し直すことが可能となる。
本リーダは、処理対象レコードが存在しない場合、再度最新の情報を取得する。
この際に、他のスレッドで処理中のレコードが未処理のまま残っている可能性がある。
このため、各スレッドで処理中のレコードをヒープ上に保持し、
読み込んだ対象が他のスレッドで処理中のレコードではないことを確認する。
対象のレコードが、他のスレッドで処理中である場合には、次のレコードを読み込み再度チェックを行う。
対象のレコードが、他のスレッドで処理中でない場合には、読み込んだレコードをクライアントに返却する。 |