COM+ 추적

COM+ 추적 서비스를 사용하면 COM+ 애플리케이션 실행의 상태 및 성능을 추적하는 자체 관리 및 진단 프로그램을 빌드할 수 있습니다. COM+ 추적은 COM+ 애플리케이션의 사용에 대한 통계 정보와 COM+ 서버 애플리케이션 instance 일시 중지되었는지 또는 재활용되었는지 여부와 같은 상태 정보를 제공합니다. 도구는 진단 모니터링 또는 표시 목적으로 추적 정보를 사용할 수 있습니다. 예를 들어 Component Services 관리 도구는 COM+ 추적을 사용하여 COM+ 애플리케이션 및 실행 중인 프로세스 폴더에 COM+ 애플리케이션 인스턴스의 상태 표시합니다.

COM+ 추적은 일반적으로 사용되는 메트릭 집합을 계산하고 주기적으로 업데이트하여 이 정보를 필요한 프로그램에서 사용할 수 있도록 합니다. 두 서비스가 자동으로 COM+ 애플리케이션 인스턴스에서 데이터를 수집하고 소비자가 이 데이터를 사용할 수 있도록 한다는 측면에서 COM+ 계측과 유사합니다. 그러나 제공된 기능과 일반적인 사용 모두에서 이러한 서비스 간에 몇 가지 중요한 차이점이 있습니다. 다음 표에서는 이러한 차이점을 요약합니다.

COM+ 계측 COM+ 추적
세분화된 데이터. COM+ 계측 서비스는 등록된 구독자에게 COM+ 애플리케이션 instance 발생하는 개별 불연속 이벤트(예: 메서드, 소멸된 개체)를 알립니다.
집계된 데이터입니다. COM+ 추적은 COM+ 애플리케이션 인스턴스의 상태 및 성능에 대해 일반적으로 사용되는 메트릭을 계산하고 주기적으로 업데이트합니다.
이벤트 구독자는 일반적으로 임시 알고리즘 및 정책을 사용하여 메트릭을 자체적으로 계산합니다.
메트릭은 COM+ 추적 서비스에 의해 자동으로 계산됩니다. 모든 소비자는 사용자 지정 메트릭을 지원하지 않고 동일한 데이터를 가져옵니다.
구독을 등록한 후 소비자는 이벤트가 발생할 때까지 COM+ 애플리케이션 instance 대한 정보를 받지 않습니다.
모든 COM+ 애플리케이션 인스턴스에 대한 추적 데이터는 언제든지 검색할 수 있습니다.
소비자를 위한 COM+ 이벤트 기반 구독 메커니즘만 지원합니다.
COM+ 이벤트 기반 구독 메커니즘과 COM 로컬 서버 인터페이스에서 폴링을 모두 지원합니다.
예제
메서드가 호출되거나 반환되는 경우의 알림입니다.
평균 호출 응답 시간, 최근 기간에 성공하거나 실패한 메서드 호출 수, 현재 메서드 호출에 있는 개체 수입니다.
개체가 개체 풀에 추가되거나 개체 풀에서 가져온 경우의 알림입니다.
풀의 개체 수, 총 개체 수입니다.
COM+ 서버 애플리케이션이 시작, 일시 중지 또는 재활용될 때의 알림입니다.
COM+ 서버 애플리케이션 프로세스의 상태(예: 일시 중지 또는 재활용 여부).
트랜잭션 시작, 준비, 중단 및 커밋 이벤트에 대한 알림입니다.
해당하는 값이 없습니다.
성공 및 실패한 메서드 호출 수준 인증 시도에 대한 알림입니다.
해당하는 값이 없습니다.

COM+ 추적은 데이터 scope 및 메트릭 계산의 유연성 측면에서 더 제한적이지만 제공하는 메트릭은 다양한 관리 및 진단 프로그램에 충분해야 합니다. 가능한 경우 COM+ 추적을 사용하면 이러한 프로그램의 디자인을 간소화할 수 있습니다. 또한 프로덕션 시스템에서 COM+ 추적을 사용하면 성능에 미치는 영향이 현저히 낮아 실시간 모니터링 도구에 더 적합할 수 있습니다.

COM+ 추적에서 데이터를 수집하는 방법

COM+ 서버 애플리케이션 프로세스가 시작되면 COM+는 시스템 애플리케이션의 구성 요소인 추적기 서버에 프로세스를 등록합니다. 구성 요소(SWC) 컨텍스트가 없는 COM+ 라이브러리 애플리케이션 및 서비스의 구성 요소도 추적을 지원합니다. 프로세스에서 라이브러리 구성 요소 또는 SWC 컨텍스트가 만들어지면 COM+는 아직 등록되지 않은 경우 추적기 서버에 프로세스를 등록합니다.

COM+는 개체 생성 또는 메서드 호출 완료와 같은 특정 이벤트가 프로세스에서 발생할 때 추적된 프로세스에 대한 통계를 업데이트합니다. 업데이트된 데이터는 주기적으로 추적기 서버에 제출되며, 이 시점에서 소비자가 사용할 수 있게 됩니다. 또한 추적기 서버는 COM+ 애플리케이션 재활용 및 중단 모니터링 기능에 사용되는 일부 메트릭을 계산합니다. 이 데이터는 소비자가 사용할 수도 있습니다.

추적 데이터는 데이터를 생성한 프로세스에 따라 구성됩니다. 이 정보가 필요한 소비자는 프로세스의 개별 COM+ 애플리케이션 또는 구성 요소 수준에서 데이터를 사용할 수도 있습니다.

이벤트 및 폴링

COM+ 추적은 소비자가 추적기 서버에서 추적 데이터를 가져오는 두 가지 메커니즘, COM+ 이벤트 기반 구독 메커니즘 및 COM 로컬 서버 인터페이스를 지원합니다.

업데이트된 추적 데이터로 주기적으로 알림을 받아야 하는 프로그램은 IComTrackingInfoEvents 이벤트 인터페이스에 대한 구독을 등록할 수 있습니다. 추적기 서버는 약 3초마다 각 구독자의 IComTrackingInfoEvents::OnNewTrackingInfo 메서드를 호출하여 컬렉션 개체의 형태로 가장 최근의 추적 데이터를 보냅니다. 이 개체는 IComTrackingInfoCollection 인터페이스를 구현하며 구독자는 이 컬렉션을 탐색하여 관심 있는 데이터를 찾을 수 있습니다.

다양한 이유로 프로그램에서 추적기 서버에서 데이터를 폴링하는 것이 더 적합할 수 있습니다. 예를 들어 모니터링 도구는 사용자 인터페이스에 상태 표시하는 프로그램보다 훨씬 덜 자주 업데이트해야 할 수 있습니다. 또한 프로그램에서 시스템에 사용할 수 있는 추적 데이터의 일부만 사용할 수 있습니다(예: 도구는 단일 COM+ 애플리케이션 인스턴스의 성능만 모니터링할 수 있음). 구독 모델은 각 알림의 모든 COM+ 애플리케이션에 대한 추적 데이터를 각 구독자에게 전송하며, 원하는 데이터를 찾는 것은 구독자의 책임입니다. 마지막으로 COM+ 이벤트는 최상의 이벤트 알림 메커니즘입니다. 신뢰할 수 있는 메시지 배달 서비스가 제공되지 않으며, 구독자가 추적기 서버에서 알림을 보내지 못했음을 감지할 수 있는 방법이 없습니다.

추적 데이터 검색을 보다 세분화해야 하는 프로그램은 추적기 서버의 IGetAppTrackerData 인터페이스를 사용할 수 있습니다.