public class ProcessResidentHandler extends java.lang.Object implements Handler<java.lang.Object,java.lang.Object>
-----------------------------+---------------------------------------------------------------------- 正常に処理を終了する条件 |以下は、本ハンドラの設定例である。 データ監視間隔は、常駐プロセスごとに異なる値を設定する事が想定される。 常駐プロセスごとに異なる値を設定するには、下記例のように設定ファイルを記述し、 常駐プロセス起動時にデータ監視間隔を指定すれば良い。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 ・・・
Constructor and Description |
---|
ProcessResidentHandler() |
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
handle(java.lang.Object data,
ExecutionContext context)
入力データに対する処理を実行する。
|
void |
setAbnormalEndExceptions(java.util.List<java.lang.String> abnormalEndExceptions)
処理を異常終了させる例外クラスを設定する。
|
void |
setDataWatchInterval(int dataWatchInterval)
データ監視間隔(ミリ秒)を設定する。
|
void |
setNormalEndExceptions(java.util.List<java.lang.String> normalEndExceptions)
処理を正常に終了させる例外クラスを設定する。
|
public java.lang.Object handle(java.lang.Object data, ExecutionContext context)
public void setDataWatchInterval(int dataWatchInterval)
dataWatchInterval
- データ監視間隔(ミリ秒)public void setNormalEndExceptions(java.util.List<java.lang.String> normalEndExceptions)
normalEndExceptions
- 正常に処理を終了させる例外クラスpublic void setAbnormalEndExceptions(java.util.List<java.lang.String> abnormalEndExceptions)
abnormalEndExceptions
- 異常終了させる例外クラス