Package nablarch.core.db.transaction
Class JdbcTransactionTimeoutHandler
java.lang.Object
nablarch.core.db.transaction.JdbcTransactionTimeoutHandler
JDBC経由でデータベースアクセスをした際にトランザクションタイムアウトを実現するクラス。
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
begin()
トランザクション有効期限をリセットする。void
トランザクションタイムアウトしているか否かをチェックする。void
checkTransactionTimeout
(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実行時に発生したSQLException
dialect
- データベース方言- Throws:
TransactionTimeoutException
- トランザクションタイムアウトしている場合
-
getExpiryTimeSec
public int getExpiryTimeSec()トランザクションタイムアウト時間までの残り秒数を取得する。- Returns:
- トランザクションタイムアウト時間までの残り秒数
-