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
-
Method Summary
Modifier and TypeMethodDescriptionvoid
checkAndActive
(String processIdentifier) プロセスの2重起動チェックとアクティブ化を行う。 プロセスが既に実行中の場合には、AlreadyProcessRunningException
を送出する。void
プロセスの非アクティブ化を行う。void
2重起動チェック用のSQL文を構築する。void
setDbTransactionManager
(SimpleDbTransactionManager dbTransactionManager) データベーストランザクションマネージャを設定する。void
setPermitProcessIdentifier
(String[] permitProcessIdentifier) 2重起動を許可するプロセスの識別子リストを設定する。void
setProcessActiveFlgColumnName
(String processActiveFlgColumnName) プロセスが起動中であることを示すフラグが格納されるカラムの物理名を設定する。void
setProcessIdentifierColumnName
(String processIdentifierColumnName) プロセスを特定するための識別子が格納されるカラムの物理名を設定する。void
setTableName
(String tableName) テーブル名を設定する。
-
Constructor Details
-
BasicDuplicateProcessChecker
public BasicDuplicateProcessChecker()
-
-
Method Details
-
initialize
public void initialize()2重起動チェック用のSQL文を構築する。- Specified by:
initialize
in 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:
checkAndActive
in interfaceDuplicateProcessChecker
- Parameters:
processIdentifier
- プロセスを識別する値- Throws:
AlreadyProcessRunningException
- プロセスの多重起動の場合
-
inactive
Description copied from interface:DuplicateProcessChecker
プロセスの非アクティブ化を行う。- Specified by:
inactive
in interfaceDuplicateProcessChecker
- Parameters:
processIdentifier
- プロセスを識別する値
-