woolpack.sql.tx
クラス TxBuilder

java.lang.Object
  上位を拡張 woolpack.sql.tx.TxBuilder

public class TxBuilder
extends Object

トランザクションを制御するDataSourceのプロキシと トランザクションが制御されたDataSourceのプロキシを生成するビルダです。 インタープリタ デザインパターンと組み合わせることにより 業務処理から RDB のトランザクション処理を分離することができます。 トランザクションを制御するプロキシから取得したコネクションで管理されたブロック内では、 トランザクションが制御されたプロキシから取得したコネクションが同一スレッド内で共有されます。 このクラスでは DataSource.getConnection()をサポートしますが DataSource.getConnection(String, String)はサポートしません。 このクラスはThreadLocalを使用しています。 このクラスのメソッドは最初に発生した例外を再スローするため、メソッド内で続けて発生した例外の情報は失われます。
適用しているデザインパターン:Thread specific Storage, DataSourceのProxyを生成するBuilder。


コンストラクタの概要
TxBuilder(DataSource dataSource)
           
 
メソッドの概要
 DataSource getDataSource()
           
 DataSource getTmpDataSource()
          DataSource.getConnection()実行時に以前のリソースを閉じます。
 DataSource getTmpDataSource(boolean refreshFlag)
          トランザクションが制御されたDataSourceのプロキシを返します。
 DataSource getTxDataSource()
          Connection.close()ではコミット・ロールバックのいずれのフラグも立っていない時にコミットします。
 DataSource getTxDataSource(boolean defaultCommitFlag)
          トランザクションを制御するDataSourceのプロキシを返します。
 void setDataSource(DataSource dataSource)
           
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

TxBuilder

public TxBuilder(DataSource dataSource)
パラメータ:
dataSource - RDBに接続するデータソース。
メソッドの詳細

getDataSource

public DataSource getDataSource()

setDataSource

public void setDataSource(DataSource dataSource)

getTxDataSource

public DataSource getTxDataSource()
Connection.close()ではコミット・ロールバックのいずれのフラグも立っていない時にコミットします。

戻り値:
トランザクションを管理するためのDataSource
関連項目:
getTxDataSource(boolean)

getTxDataSource

public DataSource getTxDataSource(boolean defaultCommitFlag)
トランザクションを制御するDataSourceのプロキシを返します。 Connection.rollback()ではロールバックのフラグを立てます。 Connection.commit()ではコミットのフラグを立てます。 Connection.close()では getTmpDataSource(boolean)で作成して開いたままのリソースを全て閉じ、 ロールバックのフラグによってコミットまたはロールバックを実行し、 最後に実際のコネクションを閉じます。

パラメータ:
defaultCommitFlag - Connection.close()でコミット・ロールバックのいずれのフラグも立っていない時にコミットするならtrue。
戻り値:
トランザクションを管理するためのDataSource

getTmpDataSource

public DataSource getTmpDataSource()
DataSource.getConnection()実行時に以前のリソースを閉じます。

戻り値:
トランザクションが管理されたDataSource
関連項目:
getTmpDataSource(boolean)

getTmpDataSource

public DataSource getTmpDataSource(boolean refreshFlag)
トランザクションが制御されたDataSourceのプロキシを返します。 DataSource.getConnection()では ロールバックのフラグが立っている場合はSQLExceptionを投げ、 初めての呼び出しで実際のコネクションを作成し、 引数が true の場合は以前のリソースを閉じます。

パラメータ:
refreshFlag - DataSource.getConnection()実行時に以前のリソースを閉じる場合は true。
戻り値:
トランザクションが管理されたDataSource


Copyright (C) 2006-2007 Takahiro Nakamura. All rights reserved.