Package nablarch.core.db.transaction
Class JdbcTransactionTimeoutHandler
java.lang.Object
nablarch.core.db.transaction.JdbcTransactionTimeoutHandler
JDBC経由でデータベースアクセスをした際にトランザクションタイムアウトを実現するクラス。
- Author:
- hisaaki sioiri
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidbegin()トランザクション有効期限をリセットする。voidトランザクションタイムアウトしているか否かをチェックする。voidcheckTransactionTimeout(SQLException sqle, Dialect dialect) トランザクションタイムアウトしているか否かをチェックする。intトランザクションタイムアウト時間までの残り秒数を取得する。
-
Constructor Details
-
JdbcTransactionTimeoutHandler
public JdbcTransactionTimeoutHandler(int transactionTimeoutSec) コンストラクタ。 トランザクションタイムアウト秒数を元にインスタンスを生成する。- Parameters:
transactionTimeoutSec- トランザクションタイムアウト秒数
-
-
Method Details
-
begin
public void begin()トランザクション有効期限をリセットする。 現在時間を元に、トランザクションの有効期限を算出する。 -
checkTransactionTimeout
トランザクションタイムアウトしているか否かをチェックする。 トランザクションタイムアウトが発生していた場合には、TransactionTimeoutExceptionを送出する。 トランザクションタイムアウトをしているか否かは有効期限(getExpiryTimeSec()を経過しているかで判断する。- Throws:
TransactionTimeoutException- トランザクションタイムアウトしている場合
-
checkTransactionTimeout
public void checkTransactionTimeout(SQLException sqle, Dialect dialect) throws TransactionTimeoutException トランザクションタイムアウトしているか否かをチェックする。 SQL実行時例外が、トランザクションタイムアウト対象か否かをデータベース方言を用いて判定する。 トランザクションタイムアウト対象の例外で、トランザクションの有効期限を超過している場合には、TransactionTimeoutExceptionを送出する。- Parameters:
sqle- SQL実行時に発生したSQLExceptiondialect- データベース方言- Throws:
TransactionTimeoutException- トランザクションタイムアウトしている場合
-
getExpiryTimeSec
public int getExpiryTimeSec()トランザクションタイムアウト時間までの残り秒数を取得する。- Returns:
- トランザクションタイムアウト時間までの残り秒数
-