Package nablarch.fw.handler
Class ProcessResidentHandler
java.lang.Object
nablarch.fw.handler.ProcessResidentHandler
プロセスを常駐化するためのハンドラ。
本ハンドラは、プロセスを常駐化するものであり下記表の条件に従い、
後続処理の呼び出しや処理停止の判断を行う。
-----------------------------+---------------------------------------------------------------------- 正常に処理を終了する条件 |以下は、本ハンドラの設定例である。 データ監視間隔は、常駐プロセスごとに異なる値を設定する事が想定される。 常駐プロセスごとに異なる値を設定するには、下記例のように設定ファイルを記述し、 常駐プロセス起動時にデータ監視間隔を指定すれば良い。setNormalEndExceptions(java.util.List)
で設定した例外が送出された場合(サブクラス含む) | | 設定を省略した場合のデフォルト動作として、ProcessStopHandler.ProcessStop
が発生した場合に処理を停止する。 | これは、本ハンドラの後続ハンドラにProcessStopHandler
を設定することにより、 | 安全に常駐プロセスを停止することを可能としている。 -----------------------------+---------------------------------------------------------------------- 異常終了する条件 |setAbnormalEndExceptions(java.util.List)
で設定した例外が送出された場合(サブクラス含む) | または、Error
が送出された場合(サブクラス含む) -----------------------------+---------------------------------------------------------------------- 後続ハンドラを呼び出す条件 | 上記に該当しない例外が発生した場合は、障害通知ログを出力後に一定時間待機し、 | 再度後続ハンドラに処理を委譲する。 | また、例外が発生せずに後続ハンドラが正常に処理を終了した場合も、 | 一定時間待機後に再度後続ハンドラに処理を委譲する。 | | 待機時間(データ監視間隔)は、setDataWatchInterval(int)
によって設定した時間(ms)となる。 | 設定を省略した場合のデータ監視間隔は1000msとなる。 | | なお、本ハンドラはサービス閉塞中例外(ServiceUnavailable
)が発生した場合は、 | 一定時間待機後に後続ハンドラを呼び出す仕様となっている。 | このため、本ハンドラの後続ハンドラにServiceAvailabilityCheckHandler
を設定することにより、 | プロセスが開局されるまで業務処理(バッチアクション)の実行を抑制することが可能となっている。 -----------------------------+----------------------------------------------------------------------
<!-- 常駐化ハンドラの設定 --> <component class="nablarch.fw.handler.ProcessResidentHandler"> <!-- データ監視間隔 データ監視間隔は、プレースホルダ形式で記述しシステムプロパティの値を埋め込めるようにする。 --> <property name="dataWatchInterval" value="${data-watch-interval}" /> </component>
// 常駐プロセス起動時にシステムプロパティ(-Dオプション)にデータ監視間隔を設定する。 // 500msを設定する場合の例 java -Ddata-watch-interval=500 ・・・
- Author:
- hisaaki sioiri
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionhandle
(Object data, ExecutionContext context) 入力データに対する処理を実行する。void
setAbnormalEndExceptions
(List<String> abnormalEndExceptions) 処理を異常終了させる例外クラスを設定する。void
setDataWatchInterval
(int dataWatchInterval) データ監視間隔(ミリ秒)を設定する。void
setNormalEndExceptions
(List<String> normalEndExceptions) 処理を正常に終了させる例外クラスを設定する。
-
Constructor Details
-
ProcessResidentHandler
public ProcessResidentHandler()
-
-
Method Details
-
handle
入力データに対する処理を実行する。 -
setDataWatchInterval
public void setDataWatchInterval(int dataWatchInterval) データ監視間隔(ミリ秒)を設定する。- Parameters:
dataWatchInterval
- データ監視間隔(ミリ秒)
-
setNormalEndExceptions
処理を正常に終了させる例外クラスを設定する。- Parameters:
normalEndExceptions
- 正常に処理を終了させる例外クラス
-
setAbnormalEndExceptions
処理を異常終了させる例外クラスを設定する。- Parameters:
abnormalEndExceptions
- 異常終了させる例外クラス
-