オブジェクト・プールの使用

オブジェクト・プールを使用すると、アプリケーションは新しい Java オブジェクトを繰り返し作成する必要がなくなります。ほとんどのオブジェクトは、一度作成され、使用された後、再利用することができます。オブジェクト・プールは、再利用待機中のオブジェクトのプールをサポートします。

このタスクについて

オブジェクト・プールは、JDBC 接続または Java Message Service (JMS) 接続およびセッションのプールに使用するためのものではありません。 WebSphere Application Server は、これらのタイプのオブジェクトを処理するための特別のメカニズムを提供します。これらのオブジェクト・プールは、アプリケーション定義のオブジェクトまたは基本的な Developer Kit タイプのプールのためのものです。

オブジェクト・プールを使用するには、製品管理者が管理コンソールを使用して、オブジェクト・プール・マネージャー を定義する必要があります。 複数のオブジェクト・プール・マネージャーを 1 つのアプリケーション・サーバー・セル内に作成できます。
注: オブジェクト・プール・マネージャー・サービスは、EJB コンテナーまたは Web コンテナー内からのみサポートされます。 Java 2 Platform Enterprise Edition (J2EE) アプリケーション・クライアント・コンテナーから、構成済みオブジェクト・プール・マネージャーを検索および使用することはできません。

手順

  1. 管理コンソールを開始します。
  2. 「リソース」 > 「オブジェクト・プール・マネージャー」とクリックします。
  3. 有効範囲」値を指定して「新規」をクリックします。
  4. 作業マネージャーの設定に対して必要なプロパティーを指定します。
    有効範囲
    構成されるリソースの有効範囲。この値は、構成ファイルの場所を示します。
    名前
    オブジェクト・プール・マネージャーの名前。この名前は、ASCII 文字で 30 文字以内の長さにします。
    JNDI 名
    プール・マネージャーの Java Naming and Directory Interface (JNDI) 名。
  5. [オプション] オブジェクト・プール・マネージャーの「説明」および「カテゴリー」を指定します。

タスクの結果

以上のステップが完了した後、アプリケーションは、指定した JNDI 名を使用して JNDI 検索を行うことにより、オブジェクト・プール・マネージャーを見つけることができます。

以下のコードは、アプリケーションがオブジェクト・プール・マネージャー・オブジェクトを検出する方法を示しています。
InitialContext ic = new InitialContext();
ObjectPoolManager opm = (ObjectPoolManager)ic.lookup("java:comp/env/pool");
アプリケーションは ObjectPoolManager を保有すると、使用するクラスのタイプに対して オブジェクト・プールをキャッシュすることができます。以下に例を示します。
ObjectPool arrayListPool = null;
ObjectPool vectorPool = null;
try
{
		arrayListPool = opm.getPool(ArrayList.class);
		vectorPool = opm.getPool(Vector.class);
}
catch(InstantiationException e)
{
	// problem creating pool
}
catch(IllegalAccessException e)
{
	// problem creating pool
}
アプリケーションは、プールを保有した後、以下の例のようにプールを使用することができます。
ArrayList list = null;
try
{
		list = (ArrayList)arrayListPool.getObject();
		list.clear();	// just in case
		for(int i = 0; i < 10; ++i)
	{
				list.add("" + i);
	}
		// do what ever we need with the ArrayList
}
finally
{
		if(list != null) arrayListPool.returnObject(list);
}

この例は、オブジェクト・プーリングを使用する基本パターンです。アプリケーションがオブジェクトを戻さない場合、 唯一の悪影響として、オブジェクトを再利用できなくなります。


トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tasb_objectpool
ファイル名:tasb_objectpool.html