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

java.lang.Object
  上位を拡張 org.seasar.jca.outbound.policy.AbstractPolicy
      上位を拡張 org.seasar.jca.outbound.policy.BasicPoolingPolicy
すべての実装されたインタフェース:
Serializable, ConnectionManagementPolicy

public class BasicPoolingPolicy
extends AbstractPolicy

単純にコネクションをプールするポリシーの実装クラスです.

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

入れ子のクラスの概要
 class BasicPoolingPolicy.ExpireTask
          アイドリング状態のままタイムアウト時間が経過したコネクションをクローズするTimerTaskの実装クラスです.
 
フィールドの概要
protected  BootstrapContext bc
          ブートストラップコンテキスト
protected  Object lock
          プールの同期オブジェクト
protected  int maxPoolSize
          プールするコネクションの最大値
protected  int minPoolSize
          プールするコネクションの最小値
protected  ManagedConnectionPool<BasicPoolingPolicy.ExpireTask> pool
          コネクションプール
protected  int timeout
          アイドル状態のコネクションを開放するまでの時間 (秒単位)
protected static Timer timer
          アイドル状態のコネクションを解放するためのタイマ
 
クラス org.seasar.jca.outbound.policy.AbstractPolicy から継承されたフィールド
mcf, needMCF, nextPolicy
 
コンストラクタの概要
BasicPoolingPolicy(BootstrapContext bc)
          インスタンスを構築します.
 
メソッドの概要
 void allocate(ConnectionManagementContext context)
          コネクションを割り当てます.
protected  ManagedConnection allocateFromFreePool(ConnectionManagementContext context)
          未使用のプールからマネージドコネクションを割り当てます.
protected  boolean checkIn(ManagedConnection mc)
          マネージドコネクションを未使用コネクションのプールにチェックインします.
protected  void checkOut(ConnectionManagementContext context)
          プールからマネージドコネクションをチェックアウトします.
 void connectionErrorOccurred(ManagedConnection mc)
          コネクションエラーが発生した場合に呼び出されます.
protected static void createTimer(BootstrapContext bc)
          タイマを作成して返します.
 void dispose()
          コネクション管理ポリシーを破棄します.
 int getMaxPoolSize()
          プールするコネクションの最大値を返します.
 int getMinPoolSize()
          プールするコネクションの最小値を返します.
 int getTimeout()
          アイドル状態のコネクションを開放するまでの時間 (秒単位) を返します.
 void initialize(ManagedConnectionFactory mcf, ConnectionManagementPolicy nextPolicy)
          コネクション管理ポリシーを初期化します.
protected  boolean isFreePoolFull()
          プールされている未使用コネクションの数が最大値に達している場合はtrueを返します.
protected  boolean isFull()
          プールされているコネクションの数が最大値に達している場合はtrueを返します.
protected  void purge(ManagedConnection mc)
          マネージドコネクションをプールから破棄します.
 void release(ManagedConnection mc)
          コネクションを解放します.
protected  void releaseFirstFromFree()
          未使用コネクションのプールから先頭のコネクションを解放します.
 void setMaxPoolSize(int maxPoolSize)
          プールするコネクションの最大値を設定します.
 void setMinPoolSize(int minPoolSize)
          プールするコネクションの最小値を設定します.
 void setTimeout(int timeout)
          アイドル状態のコネクションを開放するまでの時間 (秒単位) を設定します.
protected  void waitForFreePool()
          プールに空きができるまで待機します.
 
クラス org.seasar.jca.outbound.policy.AbstractPolicy から継承されたメソッド
assertValidMCF, silentRelease
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

timer

protected static Timer timer
アイドル状態のコネクションを解放するためのタイマ


minPoolSize

protected int minPoolSize
プールするコネクションの最小値


maxPoolSize

protected int maxPoolSize
プールするコネクションの最大値


timeout

protected int timeout
アイドル状態のコネクションを開放するまでの時間 (秒単位)


bc

protected final BootstrapContext bc
ブートストラップコンテキスト


lock

protected final Object lock
プールの同期オブジェクト


pool

protected ManagedConnectionPool<BasicPoolingPolicy.ExpireTask> pool
コネクションプール

コンストラクタの詳細

BasicPoolingPolicy

public BasicPoolingPolicy(BootstrapContext bc)
                   throws ResourceException
インスタンスを構築します.

パラメータ:
bc - ブートストラップコンテキスト
例外:
ResourceException - インスタンスの構築中に例外が発生した場合
メソッドの詳細

initialize

public void initialize(ManagedConnectionFactory mcf,
                       ConnectionManagementPolicy nextPolicy)
                throws ResourceException
インタフェース ConnectionManagementPolicy の記述:
コネクション管理ポリシーを初期化します.

定義:
インタフェース ConnectionManagementPolicy 内の initialize
オーバーライド:
クラス AbstractPolicy 内の initialize
パラメータ:
mcf - マネージドコネクションファクトリ
nextPolicy - 後続のポリシー
例外:
ResourceException - コネクション管理ポリシーの初期渦中に例外が発生した場合

createTimer

protected static void createTimer(BootstrapContext bc)
                           throws UnavailableException
タイマを作成して返します.

パラメータ:
bc - ブートストラップコンテキスト
例外:
UnavailableException - タイマの作成中に例外が発生した場合

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 - 処理中にエラーが発生した場合

dispose

public void dispose()
インタフェース ConnectionManagementPolicy の記述:
コネクション管理ポリシーを破棄します.

定義:
インタフェース ConnectionManagementPolicy 内の dispose
オーバーライド:
クラス AbstractPolicy 内の dispose

isFull

protected boolean isFull()
プールされているコネクションの数が最大値に達している場合はtrueを返します.

戻り値:
プールされているコネクションの数が最大値に達している場合はtrue

isFreePoolFull

protected boolean isFreePoolFull()
プールされている未使用コネクションの数が最大値に達している場合はtrueを返します.

戻り値:
プールされている未使用コネクションの数が最大値に達している場合はtrue

checkOut

protected void checkOut(ConnectionManagementContext context)
                 throws ResourceException
プールからマネージドコネクションをチェックアウトします.

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

waitForFreePool

protected void waitForFreePool()
                        throws ResourceException
プールに空きができるまで待機します.

例外:
ResourceException - 待機中に例外が発生した場合

allocateFromFreePool

protected ManagedConnection allocateFromFreePool(ConnectionManagementContext context)
                                          throws ResourceException
未使用のプールからマネージドコネクションを割り当てます.

パラメータ:
context - コネクション管理コンテキスト
戻り値:
マネージドコネクション
例外:
ResourceException - 割り当てられたマネージドコネクション

releaseFirstFromFree

protected void releaseFirstFromFree()
                             throws ResourceException
未使用コネクションのプールから先頭のコネクションを解放します.

例外:
ResourceException - コネクションの解放中に例外が発生した場合

checkIn

protected boolean checkIn(ManagedConnection mc)
マネージドコネクションを未使用コネクションのプールにチェックインします.

プールしているコネクションが最大値に達している場合はマネージドコネクションを後続のコネクション管理ポリシーに渡します.

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

purge

protected void purge(ManagedConnection mc)
マネージドコネクションをプールから破棄します.

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

getMinPoolSize

public int getMinPoolSize()
プールするコネクションの最小値を返します.

戻り値:
プールするコネクションの最小値

setMinPoolSize

public void setMinPoolSize(int minPoolSize)
プールするコネクションの最小値を設定します.

パラメータ:
minPoolSize - プールするコネクションの最小値

getMaxPoolSize

public int getMaxPoolSize()
プールするコネクションの最大値を返します.

戻り値:
プールするコネクションの最大値

setMaxPoolSize

public void setMaxPoolSize(int maxPoolSize)
プールするコネクションの最大値を設定します.

パラメータ:
maxPoolSize - プールするコネクションの最大値

getTimeout

public int getTimeout()
アイドル状態のコネクションを開放するまでの時間 (秒単位) を返します.

戻り値:
アイドル状態のコネクションを開放するまでの時間 (秒単位)

setTimeout

public void setTimeout(int timeout)
アイドル状態のコネクションを開放するまでの時間 (秒単位) を設定します.

パラメータ:
timeout - アイドル状態のコネクションを開放するまでの時間 (秒単位)


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