org.seasar.jca.outbound.policy
クラス AbstractTransactionBoundedPoolingPolicy

java.lang.Object
  上位を拡張 org.seasar.jca.outbound.policy.AbstractPolicy
      上位を拡張 org.seasar.jca.outbound.policy.AbstractTransactionBoundedPoolingPolicy
すべての実装されたインタフェース:
Serializable, ConnectionManagementPolicy
直系の既知のサブクラス:
LocalTransactionBoundedPoolingPolicy, XATransactionBoundedPoolingPolicy

public abstract class AbstractTransactionBoundedPoolingPolicy
extends AbstractPolicy

コネクションをトランザクションに関連づけて管理するポリシーの実装クラスです.

作成者:
koichik
関連項目:
直列化された形式

フィールドの概要
protected  boolean allowLocalTx
          リソースローカルなトランザクションを許可する場合はtrue
protected  Map<Transaction,ManagedConnectionPool<Object>> pools
          トランザクションとマネージドコネクションプールのマッピング
protected  TransactionManager tm
          トランザクションマネージャ
 
クラス org.seasar.jca.outbound.policy.AbstractPolicy から継承されたフィールド
mcf, needMCF, nextPolicy
 
コンストラクタの概要
AbstractTransactionBoundedPoolingPolicy(TransactionManager tm)
          インスタンスを構築します.
 
メソッドの概要
 void allocate(ConnectionManagementContext context)
          コネクションを割り当てます.
protected  void allocateNew(ConnectionManagementContext context, Transaction tx, ManagedConnectionPool<Object> pool)
          後続のコネクション管理ポリシーから取得したマネージドコネクションをプールします.
protected  void allocateUnboundConnection(ConnectionManagementContext context)
          スレッドがトランザクションに関連づけられていない場合で,ローカルトランザクションが許可されている場合は,後続のコネクション管理ポリシーからコネクションを割り当てます.
protected abstract  void associateTx(Transaction tx, ManagedConnectionPool<Object> pool, ConnectionManagementContext context)
          コネクションをトランザクションに関連づけます.
protected  void checkIn(ManagedConnection mc)
          マネージドコネクションをプールに戻します.
protected  void checkOut(ConnectionManagementContext context)
          コネクションをチェックアウトします.
 void connectionErrorOccurred(ManagedConnection mc)
          コネクションエラーが発生した場合に呼び出されます.
protected  ManagedConnectionPool<Object> getPool(Transaction tx, boolean create)
          現在のトランザクションに関連づけられたマネージドコネクションのプールを返します.
 boolean isAllowLocalTx()
          リソースローカルなトランザクションが許可されている場合はtrueを返します.
protected  void registerContext(Transaction tx)
          現在のトランザクションにマネージドコネクションのプールを関連づけます.
 void release(ManagedConnection mc)
          コネクションを解放します.
protected  void releaseContext(Transaction tx)
          現在のトランザクションに関連づけられているマネージドコネクションのプールをクローズします.
 void setAllowLocalTx(boolean allowLocalTx)
          リソースローカルなトランザクションが許可されている場合はtrueを設定します.
 
クラス org.seasar.jca.outbound.policy.AbstractPolicy から継承されたメソッド
assertValidMCF, dispose, initialize, silentRelease
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

pools

protected final Map<Transaction,ManagedConnectionPool<Object>> pools
トランザクションとマネージドコネクションプールのマッピング


tm

protected final TransactionManager tm
トランザクションマネージャ


allowLocalTx

protected boolean allowLocalTx
リソースローカルなトランザクションを許可する場合はtrue

コンストラクタの詳細

AbstractTransactionBoundedPoolingPolicy

public AbstractTransactionBoundedPoolingPolicy(TransactionManager tm)
インスタンスを構築します.

パラメータ:
tm - トランザクションマネージャ
メソッドの詳細

allocate

public void allocate(ConnectionManagementContext context)
              throws ResourceException
インタフェース ConnectionManagementPolicy の記述:
コネクションを割り当てます.

割り当てられたコネクションはConnectionManagementContextに設定されます.

定義:
インタフェース ConnectionManagementPolicy 内の allocate
オーバーライド:
クラス AbstractPolicy 内の allocate
パラメータ:
context - コネクション管理コンテキスト
例外:
ResourceException - コネクションの割り当て中に例外が発生した場合

release

public void release(ManagedConnection mc)
             throws ResourceException
インタフェース ConnectionManagementPolicy の記述:
コネクションを解放します.

定義:
インタフェース ConnectionManagementPolicy 内の release
オーバーライド:
クラス AbstractPolicy 内の release
パラメータ:
mc - マネージドコネクション
例外:
ResourceException - コネクションの解放中に例外が発生した場合

connectionErrorOccurred

public void connectionErrorOccurred(ManagedConnection mc)
                             throws ResourceException
インタフェース ConnectionManagementPolicy の記述:
コネクションエラーが発生した場合に呼び出されます.

エラーが発生したコネクションをキャッシュしているポリシーはコネクションを破棄します.

定義:
インタフェース ConnectionManagementPolicy 内の connectionErrorOccurred
オーバーライド:
クラス AbstractPolicy 内の connectionErrorOccurred
パラメータ:
mc - エラーが発生したマネージドコネクション
例外:
ResourceException - 処理中にエラーが発生した場合

checkOut

protected void checkOut(ConnectionManagementContext context)
                 throws ResourceException
コネクションをチェックアウトします.

現在のトランザクションにマネージドコネクションが割り当てられていれば,それをコネクション管理コンテキストに設定します. それ以外の場合は後続のコネクション管理ポリシーからコネクションを割り当てます.

パラメータ:
context - コネクション管理ポリシー
例外:
ResourceException - コネクションのチェックアウト中に例外が発生した場合

allocateUnboundConnection

protected void allocateUnboundConnection(ConnectionManagementContext context)
                                  throws ResourceException
スレッドがトランザクションに関連づけられていない場合で,ローカルトランザクションが許可されている場合は,後続のコネクション管理ポリシーからコネクションを割り当てます.

パラメータ:
context - コネクション管理ポリシー
例外:
ResourceException - コネクションの割り当て中に例外が発生した場合

allocateNew

protected void allocateNew(ConnectionManagementContext context,
                           Transaction tx,
                           ManagedConnectionPool<Object> pool)
                    throws ResourceException
後続のコネクション管理ポリシーから取得したマネージドコネクションをプールします.

パラメータ:
context - コネクション管理ポリシー
tx - トランザクション
pool - マネージドコネクションのプール
例外:
ResourceException - コネクションの取得中に例外が発生した場合

associateTx

protected abstract void associateTx(Transaction tx,
                                    ManagedConnectionPool<Object> pool,
                                    ConnectionManagementContext context)
                             throws ResourceException
コネクションをトランザクションに関連づけます.

パラメータ:
tx - トランザクション
pool - マネージドコネクションのプール
context - コネクション管理コンテキスト
例外:
ResourceException - 関連づけ中に例外が発生した場合

checkIn

protected void checkIn(ManagedConnection mc)
                throws ResourceException
マネージドコネクションをプールに戻します.

現在のトランザクションにプールが関連づけられていない場合は後続のコネクション管理ポリシーに返します.

パラメータ:
mc - マネージドコネクション
例外:
ResourceException - チェックイン中に例外が発生した場合

getPool

protected ManagedConnectionPool<Object> getPool(Transaction tx,
                                                boolean create)
現在のトランザクションに関連づけられたマネージドコネクションのプールを返します.

パラメータ:
tx - トランザクション
create - 現在のトランザクションにプールがまだ関連づけられていない場合に新たにプールを作成する場合はtrue
戻り値:
マネージドコネクションのプール

registerContext

protected void registerContext(Transaction tx)
                        throws IllegalStateException,
                               RollbackException,
                               SystemException
現在のトランザクションにマネージドコネクションのプールを関連づけます.

パラメータ:
tx - トランザクション
例外:
IllegalStateException - 例外が発生した場合
RollbackException - 例外が発生した場合
SystemException - 例外が発生した場合

releaseContext

protected void releaseContext(Transaction tx)
現在のトランザクションに関連づけられているマネージドコネクションのプールをクローズします.

パラメータ:
tx - トランザクション

isAllowLocalTx

public boolean isAllowLocalTx()
リソースローカルなトランザクションが許可されている場合はtrueを返します.

戻り値:
リソースローカルなトランザクションが許可されている場合はtrue

setAllowLocalTx

public void setAllowLocalTx(boolean allowLocalTx)
リソースローカルなトランザクションが許可されている場合はtrueを設定します.

パラメータ:
allowLocalTx - リソースローカルなトランザクションが許可されている場合はtrue


Copyright © 2005-2010 The Seasar Foundation. All Rights Reserved.