다음을 통해 공유


COM+ 개체 풀링에 대한 개념

개체 풀링(Object Pooling)은 COM+에서 제공하는 자동 서비스로, 구성 요소를 요청하는 모든 클라이언트에서 사용할 수 있도록 자체 인스턴스가 풀에서 활성 상태로 유지되도록 구성 요소를 구성할 수 있습니다. 지정된 구성 요소에 대해 유지 관리되는 풀을 관리적으로 구성하고 모니터링하여 풀 크기 및 생성 요청 제한 시간 값과 같은 특성을 지정할 수 있습니다. 애플리케이션이 실행 중일 때 COM+는 사용자가 지정한 기준에 따라 개체 활성화 및 재사용에 대한 세부 정보를 처리하여 풀을 관리합니다.

특히 재사용을 최대한 활용하기 위해 작성된 경우 이러한 방식으로 개체를 다시 사용하면 매우 중요한 성능 및 크기 조정 이점을 얻을 수 있습니다. 개체 풀링을 사용하면 다음과 같은 이점이 있습니다.

  • 각 클라이언트에 대해 개체 사용 시간을 단축하여 개체가 클라이언트에 대해 수행하는 실제 작업에서 시간이 많이 걸리는 초기화 및 리소스 획득을 고려할 수 있습니다.
  • 모든 클라이언트에서 비용이 많이 드는 리소스를 획득하는 비용을 공유할 수 있습니다.
  • 클라이언트 요청이 들어오기 전에 애플리케이션이 시작될 때 개체를 미리 할당할 수 있습니다.
  • 예를 들어 관리 풀 관리에서 리소스 사용을 제어할 수 있습니다. 예를 들어 적절한 최대 풀 수준을 설정하면 라이선스가 있는 만큼의 데이터베이스 연결만 열어 둘 수 있습니다.
  • 사용 가능한 하드웨어 리소스가 변경됨에 따라 풀 구성을 쉽게 조정할 수 있는 사용 가능한 하드웨어 리소스를 최대한 활용하도록 풀링을 관리적으로 구성할 수 있습니다.
  • 리소스가 클라이언트에 전용되는 방식을 의도적으로 제어하는 동시에 JIT(Just-In-Time) 활성화사용하는 개체의 활성화 시간을 단축할 수 있습니다.

풀 가능한 개체 작성

단일 개체 인스턴스를 여러 클라이언트에서 사용할 수 있도록 하려면 풀 가능 개체가 특정 요구 사항을 충족해야 합니다. 예를 들어 클라이언트 상태를 유지하거나 스레드 선호도를 가질 수 없습니다. 또한 트랜잭션 개체에는 풀된 개체가 보유한 관리되는 리소스를 트랜잭션에 수동으로 등록해야 한다는 특정 요구 사항이 있습니다.

풀된 개체는 IObjectControl 구현하여 재사용 방법을 제어할 수 있습니다. 이렇게 하면 지정된 컨텍스트에서 활성화될 때 초기화를 수행하고, 비활성화 시 클라이언트 상태를 정리하고, 다시 사용할 수 없는 상태에 있는 경우를 나타낼 수 있습니다.

종종 생성자 문자열을 사용하여 관리적으로 사용자 지정할 수 있도록 풀링 가능한 개체를 다소 일반적인 방식으로 작성하는 것이 유용합니다. 예를 들어 생성자 문자열에 관리적으로 지정된 특정 DSN을 사용하여 제네릭 ODBC 연결을 보유하도록 개체를 작성할 수 있습니다.

다음 표에 설명된 이 섹션의 항목에서는 COM+에서 개체 풀링이 작동하는 방식에 대한 정보와 풀링 가능한 개체를 작성, 구성 및 구현하는 방법에 대한 정보를 제공합니다.

주제 설명
개체 풀링 작동 방식
기본 개념을 제시합니다.
개체 풀링 성능 향상
개체 풀링을 가장 효과적으로 사용하는 방법에 대한 구체적인 세부 정보를 제공합니다.
풀링 가능한 개체에 대한 요구 사항
풀화할 개체를 작성하는 방법에 대한 세부 정보를 제공합니다.
풀링 트랜잭션 객체
풀 가능한 트랜잭션 개체에 적용되는 특별한 요구 사항에 대한 세부 정보를 제공합니다.
객체 수명과 상태 제어
풀된 개체를 구현하여 다시 사용하는 방법을 제어하는 방법을 설명합니다.

COM+ 개체 풀링 작업