Interface | Description |
---|---|
DelegateFactory |
委譲先クラスのインスタンスを生成するファクトリインタフェース。
本インタフェースにて生成されたインタフェースは、
DispatchHandler からディスパッチされる用途に使用される。 |
DuplicateProcessChecker |
プロセスの多重起動を防止するためのチェック処理を行うインタフェース。
|
ExecutionHandlerCallback<TData,TResult> |
実行制御ハンドラ内の処理状況に応じて呼び出される各種コールバックを定義する
インターフェース。
|
ProcessStopHandler |
処理中のプロセスを停止するためのハンドラ。
本ハンドラは、
LoopHandler やProcessResidentHandler の後続ハンドラに設定することにより、
処理中に安全にプロセスを停止することが可能となる。
なお、プロセスを停止するためにProcessStopHandler.ProcessStop を送出するため、障害通知ログが出力されプロセスは異常終了する。
異常終了する際に終了コードは、ProcessStopHandler.setExitCode(int) によって設定することが出来る。
終了コードの設定を省略した場合のデフォルト動作として終了コードは1となる。
また、未コミットのトランザクションは全てロールバックされることに注意すること。
※処理を異常終了するかどうかは、前段に設定されたハンドラによって決定される。
処理を停止するか否かのチェックは、リクエストテーブルにて行う。
本ハンドラが使用するリクエストテーブルの定義情報を下記に示す。
|
RetryHandler.RetryContext |
リトライ処理を制御するインタフェース。
|
RetryHandler.RetryContextFactory |
リトライコンテキストを生成するインタフェース。
|
Class | Description | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
BasicDuplicateProcessChecker |
データベースのテーブルを用いてプロセスの多重起動防止を行う
DuplicateProcessChecker の実装クラス。
2重起動チェックは、データベースのテーブルを用いて行う。
データベースのテーブルには、予めプロセスを識別するための値を設定しておく必要がある。
プロセスを識別する値が設定さていない場合は、2重起動チェックが正しく行えないが、
2重起動の可能性もあるため2重起動であることを示す例外を送出する。
2重起動チェック用テーブルレイアウト例を以下に示す。 |
|||||||||||||||||||||
BasicProcessStopHandler |
処理中のプロセスを停止するためのハンドラ。
本ハンドラは、
LoopHandler やProcessResidentHandler の後続ハンドラに設定することにより、
処理中に安全にプロセスを停止することが可能となる。
なお、プロセスを停止するためにProcessStop を送出するため、障害通知ログが出力されプロセスは異常終了する。
異常終了する際に終了コードは、BasicProcessStopHandler.setExitCode(int) によって設定することが出来る。
終了コードの設定を省略した場合のデフォルト動作として終了コードは1となる。
また、未コミットのトランザクションは全てロールバックされることに注意すること。
※処理を異常終了するかどうかは、前段に設定されたハンドラによって決定される。
処理を停止するか否かのチェックは、リクエストテーブルにて行う。
本ハンドラが使用するリクエストテーブルの定義情報を下記に示す。
|
|||||||||||||||||||||
DataReadHandler |
業務コンポーネントで処理するデータを
DataReader から読み込む
Handler 実装クラス。
DataReader から読み込んだデータをリクエストとして、
後続のハンドラに処理を委譲する。
データが存在しない場合(読み込んだデータがnull)の場合は、 後続のハンドラに処理は移譲せずに DataReader.NoMoreRecord を返却する。 |
|||||||||||||||||||||
DefaultDelegateFactory |
デリゲートファクトリ(
DelegateFactory )のデフォルト実装クラス。
本実装では、与えられた委譲対象クラスのインスタンスをClass.newInstance() により生成する。
DispatchHandler.setDelegateFactory(DelegateFactory) に本クラスを設定することで、
5u14までのDispatchHandler と全く同じ動作となる。 |
|||||||||||||||||||||
DispatchHandler<TData,TResult,TSelf extends Handler<TData,TResult>> |
ハンドラキューの委譲チェインとは独立したルールに従って、
ハンドラのディスパッチを行うハンドラ(ディスパッチャ)
|
|||||||||||||||||||||
DuplicateProcessCheckHandler |
プロセスの2重起動をチェックするハンドラ。
プロセスの2重起動チェックは、
DuplicateProcessChecker にて行う。 |
|||||||||||||||||||||
GlobalErrorHandler |
異例処理用例外ハンドラ。
このハンドラは、リクエストコントローラの直後に配置され、
ハンドラキュー上のどのハンドラでも捕捉されなかった例外に対して
最終的に処理を行う責務を持ったハンドラである。
ほとんどのエラーは各処理方式に準じた例外ハンドラーにより捕捉されるが、
それらのハンドラが捕捉しないエラー、もしくは、それらのハンドラ以降の
処理で発生したエラーが対象となる。
このハンドラが例外処理として行うのは以下の2点である。
1.
|
|||||||||||||||||||||
JavaPackageMappingEntry |
リクエストパスのパターン文字列とマッピング先Javaパッケージの関連を保持するクラス。
|
|||||||||||||||||||||
LoopHandler |
ループ制御ハンドラークラス。
本ハンドラは、アプリケーションが処理すべきデータが存在する間、後続のハンドラに対して繰り返し処理を委譲する。
処理すべきデータが存在するかは、
ExecutionContext.hasNextData() により判断する。
また、本ハンドラではトランザクション制御もあわせて行う。
トランザクションは、指定間隔(LoopHandler.setCommitInterval(int) 毎にコミット処理を行う。
後続ハンドラから例外が送出された場合には、未コミットのトランザクションを全てロールバックし、例外を再送出する。
本ハンドラの事前ハンドラとして、DbConnectionManagementHandler を登録すること。 |
|||||||||||||||||||||
MethodBinding<TData,TResult> |
メソッドレベルのディスパッチ機能を実装する際に継承する抽象基底クラス。
|
|||||||||||||||||||||
MultiThreadExecutionHandler |
後続ハンドラの処理を子スレッドを用いて実行するハンドラ。
本ハンドラ以降の処理は、新たに作成する子スレッド上で実行される。
これにより、後続スレッドの処理に対するタイムアウトの設定や、
停止要求(graceful-termination)を行うことが可能となる。
また、並行実行数を設定することにより、後続処理を複数のスレッド上で並行実行する
ことができる。(デフォルトの並行実行数は1)
このハンドラでは、全てのスレッドで単一のデータリーダインスタンスを共有する。
従って、データリーダがアクセスするリソースに対する同期制御は各データリーダ側
で担保されている必要がある。
|
|||||||||||||||||||||
ProcessResidentHandler |
プロセスを常駐化するためのハンドラ。
本ハンドラは、プロセスを常駐化するものであり下記表の条件に従い、
後続処理の呼び出しや処理停止の判断を行う。
|
|||||||||||||||||||||
RecordTypeBinding |
データレコードのレコードタイプ名に応じて委譲先のメソッドを決定するディスパッチハンドラ。
このディスパッチャでは、次のシグニチャに一致するメソッドに対して後続処理を委譲する。
|
|||||||||||||||||||||
RecordTypeBinding.Binder |
HttpMethodBindingのファクトリクラス
|
|||||||||||||||||||||
RequestPathJavaPackageMapping |
リクエストパスをJavaパッケージへマッピングすることで動的に委譲先ハンドラを決定するディスパッチハンドラ。
マッピング先Javaパッケージは、本ハンドラの basePackage プロパティに設定する。
リクエストパスを単一のJavaパッケージにマッピングする場合の設定例を以下に示す。
|