オブジェクト・プールを使用すると、アプリケーションは新しい Java オブジェクトを繰り返し作成する必要がなくなります。ほとんどのオブジェクトは、一度作成され、使用された後、再利用することができます。オブジェクト・プールは、再利用待機中のオブジェクトのプールをサポートします。
オブジェクト・プールは、JDBC 接続または Java Message Service (JMS) 接続およびセッションのプールに使用するためのものではありません。 WebSphere Application Server は、これらのタイプのオブジェクトを処理するための特別のメカニズムを提供します。これらのオブジェクト・プールは、アプリケーション定義のオブジェクトまたは基本的な Developer Kit タイプのプールのためのものです。
InitialContext ic = new InitialContext(); ObjectPoolManager opm = (ObjectPoolManager)ic.lookup("java:comp/env/pool");
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); }
この例は、オブジェクト・プーリングを使用する基本パターンです。アプリケーションがオブジェクトを戻さない場合、 唯一の悪影響として、オブジェクトを再利用できなくなります。