クラス CommonsPool2TargetSource

実装されたすべてのインターフェース:
SerializableSEorg.apache.commons.pool2.PooledObjectFactory<ObjectSE>PoolingConfigTargetClassAwareTargetSourceAwareBeanFactoryAwareDisposableBean

public class CommonsPool2TargetSource extends AbstractPoolingTargetSource implements org.apache.commons.pool2.PooledObjectFactory<ObjectSE>
構成可能な Apache Commons2 プールにオブジェクトを保持する TargetSource 実装。

デフォルトでは、GenericObjectPool のインスタンスが作成されます。サブクラスは、createObjectPool() メソッドをオーバーライドすることにより、使用される ObjectPool の型を変更する場合があります。

Commons Pool GenericObjectPool クラスの構成プロパティを反映した多くの構成プロパティを提供します。これらのプロパティは、構築中に GenericObjectPool に渡されます。このクラスのサブクラスを作成して ObjectPool 実装型を変更する場合は、選択した実装に関連する構成プロパティの値を渡します。

このクラスで使用される PoolableObjectFactory の実装は意味のある検証を実装しないため、testOnBorrowtestOnReturntestWhileIdle プロパティは明示的にミラーリングされません。公開されているすべての Commons Pool プロパティは、対応する Commons Pool のデフォルトを使用します。

Spring 4.2 以降、Apache Commons プール 2.4 と互換性があります。

導入:
4.2
作成者:
Rod Johnson, Rob Harrop, Juergen Hoeller, Stephane Nicoll, Kazuki Shimizu
関連事項:
  • コンストラクターの詳細

    • CommonsPool2TargetSource

      public CommonsPool2TargetSource()
      デフォルト設定で CommonsPoolTargetSource を作成します。プールのデフォルトの最大サイズは 8 です。
      関連事項:
  • メソッドの詳細

    • setMaxIdle

      public void setMaxIdle(int maxIdle)
      プール内のアイドルオブジェクトの最大数を設定します。デフォルトは 8 です。
      関連事項:
      • GenericObjectPool.setMaxIdle(int)
    • getMaxIdle

      public int getMaxIdle()
      プール内のアイドルオブジェクトの最大数を返します。
    • setMinIdle

      public void setMinIdle(int minIdle)
      プール内のアイドルオブジェクトの最小数を設定します。デフォルトは 0 です。
      関連事項:
      • GenericObjectPool.setMinIdle(int)
    • getMinIdle

      public int getMinIdle()
      プール内のアイドルオブジェクトの最小数を返します。
    • setMaxWait

      public void setMaxWait(long maxWait)
      プールからオブジェクトをフェッチするための最大待機時間を設定します。デフォルトは -1 で、永久に待機します。
      関連事項:
      • BaseGenericObjectPool.setMaxWaitMillis(long)
    • getMaxWait

      public long getMaxWait()
      プールからオブジェクトをフェッチするための最大待機時間を返します。
    • setTimeBetweenEvictionRunsMillis

      public void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis)
      アイドル状態のオブジェクトをチェックするエビクションの実行間隔を設定します。これらのオブジェクトは、アイドル状態が長すぎるか、無効になったかを確認します。デフォルトは -1 で、エビクションは実行されません。
      関連事項:
      • BaseGenericObjectPool.setTimeBetweenEvictionRunsMillis(long)
    • getTimeBetweenEvictionRunsMillis

      public long getTimeBetweenEvictionRunsMillis()
      アイドルオブジェクトをチェックするエビクション実行間の時間を返します。
    • setMinEvictableIdleTimeMillis

      public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis)
      アイドル状態のオブジェクトがエビクションの対象になる前にプールにとどまることができる最小時間を設定します。デフォルトは 1800000 (30 分です)。

      この設定を有効にするには、追い出しを実行する必要があることに注意してください。

      関連事項:
    • getMinEvictableIdleTimeMillis

      public long getMinEvictableIdleTimeMillis()
      アイドル状態のオブジェクトがプールに留まることができる最小時間を返します。
    • setBlockWhenExhausted

      public void setBlockWhenExhausted(boolean blockWhenExhausted)
      プールが使い果たされたときに呼び出しをブロックするかどうかを設定します。
    • isBlockWhenExhausted

      public boolean isBlockWhenExhausted()
      プールが使い果たされたときに呼び出しをブロックするかどうかを指定します。
    • createPool

      protected final void createPool()
      ObjectPool インスタンスを作成して保持します。
      次で指定:
      クラス AbstractPoolingTargetSourcecreatePool 
      関連事項:
    • createObjectPool

      protected org.apache.commons.pool2.ObjectPool createObjectPool()
      サブクラスは、特定の Commons プールを返したい場合にこれをオーバーライドできます。ここでプールに構成プロパティを適用する必要があります。

      デフォルトは、指定されたプールサイズの GenericObjectPool インスタンスです。

      戻り値:
      空の Commons ObjectPool
      関連事項:
    • getTarget

      public ObjectSE getTarget() throws ExceptionSE
      ObjectPool からオブジェクトを借用します。
      次で指定:
      インターフェース TargetSourcegetTarget 
      次で指定:
      クラス AbstractPoolingTargetSourcegetTarget 
      戻り値:
      プールからのオブジェクト
      例外:
      ExceptionSE - プール API からのチェック済み例外を処理する必要がある場合があるため、例外シグネチャーを許容します
    • releaseTarget

      public void releaseTarget(ObjectSE target) throws ExceptionSE
      指定されたオブジェクトを基本となる ObjectPool に返します。
      次で指定:
      インターフェース TargetSourcereleaseTarget 
      次で指定:
      クラス AbstractPoolingTargetSourcereleaseTarget 
      パラメーター:
      target - getTarget() の呼び出しを介してプールから取得されている必要があるオブジェクト
      例外:
      ExceptionSE - プーリング API が例外をスローできるようにする
      関連事項:
    • getActiveCount

      public int getActiveCount() throws UnsupportedOperationExceptionSE
      インターフェースからコピーされた説明: PoolingConfig
      プール内のアクティブなオブジェクトの数を返します。
      次で指定:
      インターフェース PoolingConfiggetActiveCount 
      例外:
      UnsupportedOperationExceptionSE - プールでサポートされていない場合
    • getIdleCount

      public int getIdleCount() throws UnsupportedOperationExceptionSE
      インターフェースからコピーされた説明: PoolingConfig
      プール内のアイドルオブジェクトの数を返します。
      次で指定:
      インターフェース PoolingConfiggetIdleCount 
      例外:
      UnsupportedOperationExceptionSE - プールでサポートされていない場合
    • destroy

      public void destroy() throws ExceptionSE
      このオブジェクトを破棄するときに、基になる ObjectPool を閉じます。
      次で指定:
      インターフェース DisposableBeandestroy 
      例外:
      ExceptionSE - シャットダウンエラーの場合。例外はログに記録されますが、再スローされず、他の Bean もリソースを解放できます。
    • makeObject

      public org.apache.commons.pool2.PooledObject<ObjectSE> makeObject() throws ExceptionSE
      次で指定:
      インターフェース org.apache.commons.pool2.PooledObjectFactory<ObjectSE>makeObject 
      例外:
      ExceptionSE
    • destroyObject

      public void destroyObject(org.apache.commons.pool2.PooledObject<ObjectSE> p) throws ExceptionSE
      次で指定:
      インターフェース org.apache.commons.pool2.PooledObjectFactory<ObjectSE>destroyObject 
      例外:
      ExceptionSE
    • validateObject

      public boolean validateObject(org.apache.commons.pool2.PooledObject<ObjectSE> p)
      次で指定:
      インターフェース org.apache.commons.pool2.PooledObjectFactory<ObjectSE>validateObject 
    • activateObject

      public void activateObject(org.apache.commons.pool2.PooledObject<ObjectSE> p) throws ExceptionSE
      次で指定:
      インターフェース org.apache.commons.pool2.PooledObjectFactory<ObjectSE>activateObject 
      例外:
      ExceptionSE
    • passivateObject

      public void passivateObject(org.apache.commons.pool2.PooledObject<ObjectSE> p) throws ExceptionSE
      次で指定:
      インターフェース org.apache.commons.pool2.PooledObjectFactory<ObjectSE>passivateObject 
      例外:
      ExceptionSE