org.seasar.jca.outbound.support
クラス ManagedConnectionPool<T>

java.lang.Object
  上位を拡張 org.seasar.jca.outbound.support.ManagedConnectionPool<T>
型パラメータ:
T - フリープール中のマネージドコネクションに関連づける値の型

public class ManagedConnectionPool<T>
extends Object

マネージドコネクションをプールします.

作成者:
koichik

フィールドの概要
protected  Set<ManagedConnection> activePool
          アクティブプール (使用されているマネージドコネクションのSet)
protected  Map<ManagedConnection,T> freePool
          フリープール (未使用のマネージドコネクションと任意の値のMap)
protected  Set<ManagedConnection> freePoolView
          フリープール (未使用のマネージドコネクションのSet) の更新不可能なビュー
protected  ConnectionManagementPolicy nextPolicy
          後続のコネクション管理ポリシー
 
コンストラクタの概要
ManagedConnectionPool(ConnectionManagementPolicy nextPolicy)
          インスタンスを構築します.
ManagedConnectionPool(ConnectionManagementPolicy nextPolicy, boolean accessOrder)
          インスタンスを構築します.
 
メソッドの概要
 void addToActivePool(ManagedConnection mc)
          マネージドコネクションをアクティブプールに追加します.
 void addToFreePool(ManagedConnection mc)
          マネージドコネクションをフリープールに追加します.
 void addToFreePool(ManagedConnection mc, T opaque)
          マネージドコネクションをフリープールに追加します.
 void close()
          コネクションプールをクローズします.
 boolean containsActive(ManagedConnection mc)
          マネージドコネクションがアクティブプールの要素ならtrueを返します.
 boolean containsFree(ManagedConnection mc)
          マネージドコネクションがフリープールの要素ならtrueを返します.
 Set<ManagedConnection> getActivePool()
          アクティブプール (使用されているマネージドコネクションのSet) を返します.
 int getActivePoolSize()
          アクティブプールのサイズ (使用されているマネージドコネクションの数) を返します.
 ManagedConnection getFirstFromFree()
          フリープールから最初のマネージドコネクションを返します.
 Set<ManagedConnection> getFreePool()
          フリープール (未使用のマネージドコネクションと任意の値のMap) の更新不可能なビューを返します.
 int getFreePoolSize()
          フリープールのサイズ (未使用のマネージドコネクションの数) を返します.
 ManagedConnection getMatched(Subject subject, ConnectionRequestInfo info, ManagedConnectionFactory mcf)
          引数にマッチするマネージドコネクションがフリープールにあればそれを返します.
 boolean moveActiveToFreePool(ManagedConnection mc)
          マネージドコネクションをアクティブプールからフリープールに移動します.
 boolean moveActiveToFreePool(ManagedConnection mc, T opaque)
          マネージドコネクションをアクティブプールからフリープールに移動します.
 T moveFreeToActivePool(ManagedConnection mc)
          マネージドコネクションをフリープールからアクティブプールに移動します.
 boolean remove(ManagedConnection mc)
          マネージドコネクションをアクティブプールまたはフリープールから削除します.
 boolean removeFromActivePool(ManagedConnection mc)
          マネージドコネクションをアクティブプールから削除します.
 T removeFromFreePool(ManagedConnection mc)
          マネージドコネクションをフリープールから削除します.
 int size()
          プールの現在のサイズ (アクティブプールとフリープールのサイズの合計) を返します.
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

activePool

protected final Set<ManagedConnection> activePool
アクティブプール (使用されているマネージドコネクションのSet)


freePool

protected final Map<ManagedConnection,T> freePool
フリープール (未使用のマネージドコネクションと任意の値のMap)


freePoolView

protected final Set<ManagedConnection> freePoolView
フリープール (未使用のマネージドコネクションのSet) の更新不可能なビュー


nextPolicy

protected final ConnectionManagementPolicy nextPolicy
後続のコネクション管理ポリシー

コンストラクタの詳細

ManagedConnectionPool

public ManagedConnectionPool(ConnectionManagementPolicy nextPolicy)
インスタンスを構築します.

パラメータ:
nextPolicy - 後続のコネクション管理ポリシー

ManagedConnectionPool

public ManagedConnectionPool(ConnectionManagementPolicy nextPolicy,
                             boolean accessOrder)
インスタンスを構築します.

パラメータ:
nextPolicy - 後続のコネクション管理ポリシー
accessOrder - フリープールをアクセス順で管理する場合はtrue
メソッドの詳細

getActivePool

public Set<ManagedConnection> getActivePool()
アクティブプール (使用されているマネージドコネクションのSet) を返します.

戻り値:
アクティブプール (使用されているマネージドコネクションのSet)

getFreePool

public Set<ManagedConnection> getFreePool()
フリープール (未使用のマネージドコネクションと任意の値のMap) の更新不可能なビューを返します.

戻り値:
フリープール (未使用のマネージドコネクションと任意の値のMap) の更新不可能なビュー

size

public int size()
プールの現在のサイズ (アクティブプールとフリープールのサイズの合計) を返します.

戻り値:
プールの現在のサイズ (アクティブプールとフリープールのサイズの合計)

getActivePoolSize

public int getActivePoolSize()
アクティブプールのサイズ (使用されているマネージドコネクションの数) を返します.

戻り値:
アクティブプールのサイズ (使用されているマネージドコネクションの数)

getFreePoolSize

public int getFreePoolSize()
フリープールのサイズ (未使用のマネージドコネクションの数) を返します.

戻り値:
フリープールのサイズ (未使用のマネージドコネクションの数)

containsActive

public boolean containsActive(ManagedConnection mc)
マネージドコネクションがアクティブプールの要素ならtrueを返します.

パラメータ:
mc - マネージドコネクション
戻り値:
マネージドコネクションがアクティブプールの要素ならtrue

containsFree

public boolean containsFree(ManagedConnection mc)
マネージドコネクションがフリープールの要素ならtrueを返します.

パラメータ:
mc - マネージドコネクション
戻り値:
マネージドコネクションがフリープールの要素ならtrue

getMatched

public ManagedConnection getMatched(Subject subject,
                                    ConnectionRequestInfo info,
                                    ManagedConnectionFactory mcf)
                             throws ResourceException
引数にマッチするマネージドコネクションがフリープールにあればそれを返します.

フリープールに引数にマッチするマネージドコネクションがなければnullを返します.

パラメータ:
subject - サブジェクト
info - コネクション要求情報
mcf - マネージドコネクションファクトリ
戻り値:
引数にマッチするマネージドコネクション
例外:
ResourceException - マネージドコネクションの照会中に例外が発生した場合

getFirstFromFree

public ManagedConnection getFirstFromFree()
フリープールから最初のマネージドコネクションを返します.

戻り値:
フリープール中の最初のマネージドコネクション

addToActivePool

public void addToActivePool(ManagedConnection mc)
マネージドコネクションをアクティブプールに追加します.

パラメータ:
mc - マネージドコネクション

addToFreePool

public void addToFreePool(ManagedConnection mc)
マネージドコネクションをフリープールに追加します.

パラメータ:
mc - マネージドコネクション

addToFreePool

public void addToFreePool(ManagedConnection mc,
                          T opaque)
マネージドコネクションをフリープールに追加します.

パラメータ:
mc - マネージドコネクション
opaque - マネージドコネクションに関連づける任意の値

moveActiveToFreePool

public boolean moveActiveToFreePool(ManagedConnection mc)
マネージドコネクションをアクティブプールからフリープールに移動します.

マネージドコネクションがアクティブプールのメンバでない場合はfalseを返します.

パラメータ:
mc - マネージドコネクション
戻り値:
マネージドコネクションを移動した場合はtrue

moveActiveToFreePool

public boolean moveActiveToFreePool(ManagedConnection mc,
                                    T opaque)
マネージドコネクションをアクティブプールからフリープールに移動します.

マネージドコネクションがアクティブプールのメンバでない場合はfalseを返します.

パラメータ:
mc - マネージドコネクション
opaque - マネージドコネクションに関連づける任意の値
戻り値:
マネージドコネクションを移動した場合はtrue

moveFreeToActivePool

public T moveFreeToActivePool(ManagedConnection mc)
マネージドコネクションをフリープールからアクティブプールに移動します.

マネージドコネクションがフリープールのメンバでない場合はnullを返します.

パラメータ:
mc - マネージドコネクション
戻り値:
マネージドコネクションに関連づけられていた任意の値

removeFromActivePool

public boolean removeFromActivePool(ManagedConnection mc)
マネージドコネクションをアクティブプールから削除します.

マネージドコネクションがアクティブプールのメンバでない場合はfalseを返します.

パラメータ:
mc - マネージドコネクション
戻り値:
マネージドコネクションを削除した場合はtrue

removeFromFreePool

public T removeFromFreePool(ManagedConnection mc)
マネージドコネクションをフリープールから削除します.

マネージドコネクションがフリープールのメンバでない場合はnullを返します.

パラメータ:
mc - マネージドコネクション
戻り値:
マネージドコネクションに関連づけられていた任意の値

remove

public boolean remove(ManagedConnection mc)
マネージドコネクションをアクティブプールまたはフリープールから削除します.

マネージドコネクションがアクティブプール,フリープールいずれのメンバでもない場合はnullを返します.

パラメータ:
mc - マネージドコネクション
戻り値:
マネージドコネクションを削除した場合はtrue

close

public void close()
コネクションプールをクローズします.



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