Package nablarch.fw.handler
Class BasicProcessStopHandler
java.lang.Object
nablarch.fw.handler.BasicProcessStopHandler
- All Implemented Interfaces:
Initializable
,Handler<Object,
,Object> ProcessStopHandler
処理中のプロセスを停止するためのハンドラ。
本ハンドラは、
LoopHandler
やProcessResidentHandler
の後続ハンドラに設定することにより、
処理中に安全にプロセスを停止することが可能となる。
なお、プロセスを停止するためにProcessStopHandler.ProcessStop
を送出するため、障害通知ログが出力されプロセスは異常終了する。
異常終了する際に終了コードは、setExitCode(int)
によって設定することが出来る。
終了コードの設定を省略した場合のデフォルト動作として終了コードは1となる。
また、未コミットのトランザクションは全てロールバックされることに注意すること。
※処理を異常終了するかどうかは、前段に設定されたハンドラによって決定される。
処理を停止するか否かのチェックは、リクエストテーブルにて行う。
本ハンドラが使用するリクエストテーブルの定義情報を下記に示す。
-----------------------------+---------------------------------------------------------- カラム名 | 説明 -----------------------------+---------------------------------------------------------- リクエストID | プロセスを特定するためのリクエストID 処理停止フラグ | 処理を停止するか否かの情報 | 本フラグの値が'1'の場合に処理を停止する。 | | 本フラグの値は、自動的に'0'には変更されないため再実行する際には、 | 手動で'0'に変更する必要がある。 -----------------------------+----------------------------------------------------------
- Author:
- hisaaki sioiri
-
Nested Class Summary
Nested classes/interfaces inherited from interface nablarch.fw.handler.ProcessStopHandler
ProcessStopHandler.ProcessStop
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionhandle
(Object o, ExecutionContext context) 入力データに対する処理を実行する。void
初期化処理を行う。boolean
isProcessStop
(String requestId) プロセス停止可否を判定する。void
setCheckInterval
(int checkInterval) チェック間隔(handle(Object, ExecutionContext)
が 何回呼び出されるごとに停止フラグを確認するか?)を設定する。void
setDbTransactionManager
(SimpleDbTransactionManager dbTransactionManager) トランザクションマネージャ(SimpleDbTransactionManager
)を設定する。void
setExitCode
(int exitCode) 終了コードを設定する。void
setProcessHaltColumnName
(String processHaltColumnName) プロセス停止フラグが格納されるカラムの物理名を設定する。void
setRequestIdColumnName
(String requestIdColumnName) プロセスを特定するためのリクエストIDが格納されるカラムの物理名を設定する。void
setTableName
(String tableName) プロセス停止可否のチェックを行うテーブルの物理名を設定する。
-
Constructor Details
-
BasicProcessStopHandler
public BasicProcessStopHandler()
-
-
Method Details
-
handle
入力データに対する処理を実行する。 処理停止チェックを行う。 -
isProcessStop
プロセス停止可否を判定する。- Specified by:
isProcessStop
in interfaceProcessStopHandler
- Parameters:
requestId
- リクエストID- Returns:
- プロセスを停止する必要がある場合はtrue
-
setCheckInterval
public void setCheckInterval(int checkInterval) チェック間隔(handle(Object, ExecutionContext)
が 何回呼び出されるごとに停止フラグを確認するか?)を設定する。- Specified by:
setCheckInterval
in interfaceProcessStopHandler
- Parameters:
checkInterval
- チェック間隔(0以下の値が設定された場合は1)
-
setDbTransactionManager
トランザクションマネージャ(SimpleDbTransactionManager
)を設定する。 本ハンドラは、ここで設定されたトランザクションマネージャを使用してデータベースアクセスを行う。- Parameters:
dbTransactionManager
- トランザクションマネージャ
-
initialize
public void initialize()初期化処理を行う。 プロセス停止可否をチェックするためのSELECT文を構築する。- Specified by:
initialize
in interfaceInitializable
-
setTableName
プロセス停止可否のチェックを行うテーブルの物理名を設定する。- Parameters:
tableName
- テーブル物理名
-
setRequestIdColumnName
プロセスを特定するためのリクエストIDが格納されるカラムの物理名を設定する。- Parameters:
requestIdColumnName
- リクエストIDカラムの物理名
-
setProcessHaltColumnName
プロセス停止フラグが格納されるカラムの物理名を設定する。- Parameters:
processHaltColumnName
- プロセス停止カラムフラグの物理名
-
setExitCode
public void setExitCode(int exitCode) 終了コードを設定する。 終了コードの設定がない場合、デフォルトでResult.InternalError#STATUS_CODE
が使用される。- Specified by:
setExitCode
in interfaceProcessStopHandler
- Parameters:
exitCode
- 終了コード
-