오브젝트 풀 사용
오브젝트 풀은 애플리케이션이 반복해서 새 Java 오브젝트를 작성하는 것을 방지하는 데 도움이 됩니다. 대부분의 오브젝트는 한 번 작성되고, 사용된 다음 다시 사용될 수 있습니다. 오브젝트 풀은 오브젝트의 풀링의 재사용 대기를 지원합니다.
이 태스크 정보
오브젝트 풀은 JDBC 연결 또는 JMS(Java Message Service) 연결과 세션에 사용되지 않습니다. WebSphere Application Server는 이러한 오브젝트 유형을 다루기 위한 특별한 메커니즘을 제공합니다. 이러한 오브젝트 풀은 애플리케이션 정의 오브젝트 또는 기본 개발자 킷 유형을 풀링하는 데 사용됩니다.
오브젝트 풀을 사용하려면
제품 관리자는 관리 콘솔을 사용하여 오브젝트 풀
관리자를 정의해야 합니다. 애플리케이션 서버 셀에서 복수 오브젝트 풀 관리자가 작성될 수 있습니다.
참고: 오브젝트 풀 관리자 서비스는 EJB 컨테이너 또는 웹 컨테이너에서만 지원됩니다.
J2EE(Java 2 Platform Enterprise Edition) 애플리케이션 클라이언트 컨테이너에서 구성된 오브젝트 풀 관리자 검색 및 사용은
지원되지 않습니다.
프로시저
결과
예
다음 코드는 애플리케이션이 오브젝트 풀 관리자 오브젝트를 찾을 수 있는 방법을 설명합니다.
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);
}
이 예는 오브젝트 풀링을 사용하기 위한 기본 패턴을 제공합니다. 애플리케이션이 오브젝트를 리턴하지 않는 경우 유일한 역효과는 오브젝트가 재사용될 수 없다는 것입니다.