Package nablarch.fw.handler
Class BasicDuplicateProcessChecker
java.lang.Object
nablarch.fw.handler.BasicDuplicateProcessChecker
- All Implemented Interfaces:
Initializable,DuplicateProcessChecker
public class BasicDuplicateProcessChecker
extends Object
implements DuplicateProcessChecker, Initializable
データベースのテーブルを用いてプロセスの多重起動防止を行う
DuplicateProcessCheckerの実装クラス。
2重起動チェックは、データベースのテーブルを用いて行う。
データベースのテーブルには、予めプロセスを識別するための値を設定しておく必要がある。
プロセスを識別する値が設定さていない場合は、2重起動チェックが正しく行えないが、
2重起動の可能性もあるため2重起動であることを示す例外を送出する。
2重起動チェック用テーブルレイアウト例を以下に示す。
---------------------------------- ------------------------------------------------------
カラム名 説明
---------------------------------- ------------------------------------------------------
プロセス識別子 プロセスを一意に識別するための値を格納する。
例えばジョブIDなど
プロセスアクティブフラグ プロセスの現在の状態を格納する。
* 0:非アクティブ(実行されていない状態)
* 1:アクティブ(実行されている状態)
---------------------------------- ------------------------------------------------------
- Author:
- Hisaaki Shioiri
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcheckAndActive(String processIdentifier) プロセスの2重起動チェックとアクティブ化を行う。 プロセスが既に実行中の場合には、AlreadyProcessRunningExceptionを送出する。voidプロセスの非アクティブ化を行う。void2重起動チェック用のSQL文を構築する。voidsetDbTransactionManager(SimpleDbTransactionManager dbTransactionManager) データベーストランザクションマネージャを設定する。voidsetPermitProcessIdentifier(String[] permitProcessIdentifier) 2重起動を許可するプロセスの識別子リストを設定する。voidsetProcessActiveFlgColumnName(String processActiveFlgColumnName) プロセスが起動中であることを示すフラグが格納されるカラムの物理名を設定する。voidsetProcessIdentifierColumnName(String processIdentifierColumnName) プロセスを特定するための識別子が格納されるカラムの物理名を設定する。voidsetTableName(String tableName) テーブル名を設定する。
-
Constructor Details
-
BasicDuplicateProcessChecker
public BasicDuplicateProcessChecker()
-
-
Method Details
-
initialize
public void initialize()2重起動チェック用のSQL文を構築する。- Specified by:
initializein interfaceInitializable
-
setDbTransactionManager
データベーストランザクションマネージャを設定する。- Parameters:
dbTransactionManager- データベーストランザクションマネージャ
-
setTableName
テーブル名を設定する。- Parameters:
tableName- テーブル名
-
setProcessIdentifierColumnName
プロセスを特定するための識別子が格納されるカラムの物理名を設定する。- Parameters:
processIdentifierColumnName- プロセスを識別する値のカラム物理名
-
setProcessActiveFlgColumnName
プロセスが起動中であることを示すフラグが格納されるカラムの物理名を設定する。- Parameters:
processActiveFlgColumnName- プロセス起動中フラグのカラム物理名
-
setPermitProcessIdentifier
2重起動を許可するプロセスの識別子リストを設定する。- Parameters:
permitProcessIdentifier- 許可リクエストIDのリスト
-
checkAndActive
Description copied from interface:DuplicateProcessCheckerプロセスの2重起動チェックとアクティブ化を行う。 プロセスが既に実行中の場合には、AlreadyProcessRunningExceptionを送出する。- Specified by:
checkAndActivein interfaceDuplicateProcessChecker- Parameters:
processIdentifier- プロセスを識別する値- Throws:
AlreadyProcessRunningException- プロセスの多重起動の場合
-
inactive
Description copied from interface:DuplicateProcessCheckerプロセスの非アクティブ化を行う。- Specified by:
inactivein interfaceDuplicateProcessChecker- Parameters:
processIdentifier- プロセスを識別する値
-