Class JdbcTransactionTimeoutHandler

java.lang.Object
nablarch.core.db.transaction.JdbcTransactionTimeoutHandler

public class JdbcTransactionTimeoutHandler extends Object
JDBC経由でデータベースアクセスをした際にトランザクションタイムアウトを実現するクラス。
Author:
hisaaki sioiri
  • Constructor Details

    • JdbcTransactionTimeoutHandler

      public JdbcTransactionTimeoutHandler(int transactionTimeoutSec)
      コンストラクタ。

      トランザクションタイムアウト秒数を元にインスタンスを生成する。

      Parameters:
      transactionTimeoutSec - トランザクションタイムアウト秒数
  • Method Details

    • begin

      public void begin()
      トランザクション有効期限をリセットする。

      現在時間を元に、トランザクションの有効期限を算出する。

    • checkTransactionTimeout

      public void checkTransactionTimeout() throws TransactionTimeoutException
      トランザクションタイムアウトしているか否かをチェックする。

      トランザクションタイムアウトが発生していた場合には、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:
      トランザクションタイムアウト時間までの残り秒数