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