애플리케이션 재활용은 알려진 문제에 대한 빠른 수정을 제공하고 예기치 않은 문제로부터 보호함으로써 COM+ 애플리케이션의 전반적인 안정성을 크게 높일 수 있습니다. 예를 들어 메모리 누수, 스케일링할 수 없는 리소스 사용량 및 프로세스 오류와 같은 문제로 인해 시간이 지남에 따라 애플리케이션 성능이 저하할 수 있습니다. COM+는 이러한 문제에 대한 솔루션으로 애플리케이션 재활용을 제공합니다. 애플리케이션 재활용을 사용하여 프로세스를 자동으로 종료하고 다시 시작할 수 있으므로 실패한 프로세스를 다시 초기화하고 사용하는 메모리를 다시 할당할 수 있습니다.
애플리케이션 재활용은 애플리케이션과 연결된 Dllhost 프로세스의 중복을 만들어 작동합니다. 이 중복된 Dllhost 프로세스는 모든 향후 개체 요청을 처리하므로 이전 Dllhost는 나머지 개체 요청의 서비스를 완료합니다. 이전 Dllhost 프로세스는 프로세스의 개체에 대한 모든 외부 참조의 릴리스를 감지하거나 만료 시간 제한 값에 도달할 때 종료됩니다. 이 동작을 통해 애플리케이션 재활용은 클라이언트 애플리케이션이 서비스 중단을 경험하지 않도록 합니다.
참고
Windows 서비스로 실행되도록 구성된 COM+ 애플리케이션은 재활용할 수 없습니다. 또한 라이브러리 애플리케이션에는 호스트 프로세스의 재활용 및 풀링 속성이 있습니다.
COM+ 관리 SDK를 통해 구성 요소 서비스 관리 도구를 사용하거나 프로그래밍 방식으로 애플리케이션 재활용을 관리적으로 구성할 수 있습니다. Applications 컬렉션에서 COMAdminCatalogObject 개체의 다음 속성에 따라 결정되는 여러 조건에 따라 프로세스를 재활용할 수 있습니다.
- RecycleLifetimeLimit. 프로세스가 재활용되기 전에 실행할 수 있는 최대 시간(분)입니다. 유효한 범위는 0~30,240분(21일)입니다. 기본 시간(분)은 0이며, 이는 프로세스가 수명 제한에 도달하지 않도록 재활용하지 않음을 나타냅니다.
- RecycleMemoryLimit. 프로세스를 재활용하기 전의 최대 프로세스 메모리 사용량(킬로바이트)입니다. 프로세스 메모리 사용량이 지정된 수를 1분 이상 초과하면 프로세스가 재활용됩니다. 유효한 범위는 0~1,048,576KB입니다. 기본 메모리 사용량은 0KB이며, 이는 프로세스가 메모리 제한에 도달하지 않도록 재활용하지 않음을 나타냅니다.
- RecycleCallLimit. 프로세스를 재활용하기 전에 애플리케이션 개체가 수락할 수 있는 최대 호출 수입니다. 유효한 범위는 0~1,048,576개 호출입니다. 기본 호출 수는 0이며, 이는 프로세스가 호출 제한에 도달하지 않도록 재활용하지 않음을 나타냅니다.
- RecycleActivationLimit. 프로세스를 재활용하기 전에 허용할 애플리케이션 개체 활성화의 최대 수입니다. 유효한 범위는 0~1,048,576개 정품 인증입니다. 기본 활성화 수는 0이며, 이는 프로세스가 활성화 제한에 도달하지 않도록 재활용하지 않음을 나타냅니다.
또한 COMAdminCatalogObject 개체의 RecycleExpirationTimeout 속성을 사용하여 재활용 프로세스를 강제로 종료합니다. 프로세스를 강제로 종료하기 전에 재활용 프로세스의 개체에 대한 모든 외부 참조가 해제될 때까지 기다리는 시간(분)을 나타냅니다. 유효한 범위는 1~1440분(24시간)이며 기본 만료 제한 시간은 15분입니다. 이 값은 프로세스가 다른 기준에 따라 재활용될 것이라고 이미 결정된 경우에만 사용됩니다.
애플리케이션을 재활용하기 위한 조건을 둘 이상 선택할 수 있습니다. COM+는 첫 번째 조건 집합이 충족된 후 애플리케이션을 재활용합니다. 만료 시간 제한 값을 설정하여 이전 Dllhost 프로세스가 강제로 종료되기 전에 남은 서비스 요청을 완료하는 데 소요될 수 있는 시간을 결정할 수 있습니다.
ApplicationInstances 컬렉션은 HasRecycled 속성을 제공하여 애플리케이션이 재활용되었는지 여부를 확인하는 방법을 제공합니다.
관련 항목