ОТСЛЕЖИВАНИЕ COM+

Служба отслеживания COM+ позволяет создавать собственные административные и диагностические программы, отслеживающие состояние и производительность запущенных приложений COM+. Отслеживание COM+ предоставляет статистические сведения об использовании приложений COM+ и сведений о состоянии, таких как приостановка или перезапуск экземпляра серверного приложения COM+. Средства могут использовать сведения об отслеживании при мониторинге диагностики или в целях отображения. Например, средство администрирования служб компонентов использует отслеживание COM+ для отображения состояния экземпляров приложений COM+ в папках COM+ Applications and Running Processes.

Отслеживание COM+ вычисляет и периодически обновляет набор часто используемых метрик, что делает эти сведения доступными для программ, которым он нужен. Он аналогичен инструментированию COM+ в том, что обе службы автоматически собирают данные из экземпляров приложений COM+ и делают эти данные доступными для потребителей. Однако существуют некоторые важные различия между этими службами, как в функциональных возможностях, так и в типичном использовании. В следующей таблице приведены общие сведения об этих различиях.

Инструментирование COM+ ОТСЛЕЖИВАНИЕ COM+
Детализированные данные. Служба инструментирования COM+ уведомляет зарегистрированных подписчиков отдельных дискретных событий (например, метод, вызываемый, уничтоженный объект) в экземпляре приложения COM+.
Агрегированные данные. Отслеживание COM+ вычисляет и периодически обновляет часто используемые метрики для состояния и производительности экземпляров приложений COM+.
Подписчики событий обычно вычисляют метрики самостоятельно, используя нерегламентированные алгоритмы и политики.
Метрики вычисляются автоматически службой отслеживания COM+. Все потребители получают одни и те же данные без поддержки пользовательских метрик.
После регистрации подписки потребитель не получает никаких сведений об экземпляре приложения COM+ до тех пор, пока событие не произойдет.
Данные отслеживания для всех экземпляров приложений COM+ могут быть получены в любое время.
Поддерживает только механизм подписки на основе событий COM+ для потребителей.
Поддерживает механизм подписки на основе событий COM+ и опрос на локальном сервере COM.
Примеры
Уведомления при вызове или возврате метода.
Среднее время отклика на вызов, количество вызовов метода, которые завершилися успешно или завершилось сбоем в течение недавнего периода времени, количество объектов в настоящее время в вызове метода.
Уведомления при добавлении или получении объекта из пула объектов.
Количество объектов в пуле, общее количество объектов.
Уведомления о запуске, приостановке или перезапуске серверного приложения COM+.
Состояние процесса приложения COM+ сервера (например, приостановка или перезапуск).
Уведомления о запуске транзакции, подготовке, прерывании и фиксации событий.
Эквивалент отсутствует.
Уведомления об успешных и неудачных попытках проверки подлинности на уровне вызова метода.
Эквивалент отсутствует.

Хотя отслеживание COM+ является более ограниченным с точки зрения область данных и гибкости для вычисления метрик, метрики, которые он предоставляет, должны быть достаточно для широкого спектра административных и диагностических программ. Использование отслеживания COM+, когда это возможно, может упростить проектирование этих программ. Кроме того, использование отслеживания COM+ в производственных системах может значительно снизить производительность, что делает его более подходящим для средств мониторинга в режиме реального времени.

Как com+ Tracking собирает данные

При запуске процесса приложения COM+ сервера COM+ регистрирует процесс на сервере отслеживания, компонент системного приложения. Компоненты в приложениях и службах библиотек COM+ без контекстов компонентов (SWC) также поддерживают отслеживание. Когда компонент библиотеки или контекст SWC создается в процессе, COM+ регистрирует процесс на сервере отслеживания, если он еще не зарегистрирован.

Com+ обновляет статистику для отслеживаемого процесса при возникновении определенных событий в процессе, таких как создание объекта или завершение вызова метода. Обновленные данные периодически передаются на сервер отслеживания, в то время как он становится доступным для потребителей. Сервер отслеживания также отвечает за вычисление некоторых метрик, используемых повторной обработкой приложений COM+ и зависанием функций мониторинга. Эти данные также доступны потребителям.

Данные отслеживания организованы в соответствии с процессом, создающим данные. Данные на уровне отдельных приложений или компонентов COM+ в процессе также доступны для потребителей, которым нужна эта информация.

События и опрос

Отслеживание COM+ поддерживает два механизма получения данных отслеживания от сервера отслеживания, механизма подписки на основе COM+ и локального интерфейса сервера COM.

Программы, которые должны периодически получать уведомления с обновленными данными отслеживания, могут зарегистрировать подписку для интерфейса событий IComTrackingInfoEvents. Примерно каждые три секунды сервер отслеживания вызывает метод IComTrackingInfoEvents: :OnNewTrackingInfo , отправляя последние данные отслеживания в виде объекта коллекции. Этот объект реализует интерфейс IComTrackingInfoCollection, и подписчики могут перемещаться по этой коллекции, чтобы найти интересующие их данные.

По различным причинам для программы для опроса сервера отслеживания данных может быть более целесообразно. Например, средство мониторинга может потребовать обновления гораздо реже, чем программа, которая отображает состояние в пользовательском интерфейсе. Кроме того, программа может использовать только небольшую часть данных отслеживания, доступных для системы (например, средство может отслеживать производительность экземпляров одного приложения COM+). Модель подписки отправляет каждому подписчику данные отслеживания для всех приложений COM+ в каждом уведомлении и несет ответственность за поиск нужных данных подписчиком. Наконец, события COM+ — это механизм уведомлений о событиях с лучшими усилиями. Службы доставки надежных сообщений не предоставляются, и подписчику не удается обнаружить, что сервер отслеживания не смог отправить ему уведомление.

Программа, требующая большего контроля над получением данных отслеживания, может использовать интерфейс IGetAppTrackerData сервера отслеживания.