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 인터페이스를 사용할 수 있습니다.