Śledzenie COM+
Usługa śledzenia COM+ umożliwia tworzenie własnych programów administracyjnych i diagnostycznych, które śledzą stan i wydajność uruchomionych aplikacji COM+. Śledzenie COM+ zapewnia informacje statystyczne dotyczące korzystania z aplikacji COM+ oraz informacje o stanie, takie jak to, czy instancja aplikacji serwera COM+ została wstrzymana lub poddana odświeżeniu. Narzędzia mogą używać informacji śledzenia w monitorowaniu diagnostycznym lub do celów wyświetlania. Na przykład narzędzie administracyjne usługi składników używa śledzenia COM+ do wyświetlania stanu wystąpień aplikacji COM+ w folderach APLIKACJE COM+ i Uruchomione procesy.
Śledzenie modelu COM+ oblicza i okresowo aktualizuje zestaw często używanych metryk, dzięki czemu te informacje są dostępne dla programów, które ich potrzebują. Jest to podobne do instrumentacji COM+, ponieważ obie usługi automatycznie zbierają dane z wystąpień aplikacji COM+ i udostępniają je konsumentom. Istnieją jednak pewne istotne różnice między tymi usługami, zarówno w oferowanych funkcjach, jak i typowych zastosowaniach. Poniższa tabela zawiera podsumowanie tych różnic.
Instrumentacja COM+ | Śledzenie COM+ |
---|---|
Drobnoziarniste dane. Usługa instrumentacji COM+ powiadamia zarejestrowanych subskrybentów o pojedynczych zdarzeniach dyskretnych (na przykład wywołanie metody, obiekt zniszczony), które pojawiają się w instancji aplikacji COM+. |
Zagregowane dane. Monitorowanie COM+ oblicza i okresowo aktualizuje często używane wskaźniki stanu i wydajności wystąpień aplikacji COM+. |
Subskrybenci zdarzeń zwykle obliczają metryki samodzielnie przy użyciu algorytmów i zasad ad hoc. |
Metryki są obliczane automatycznie przez usługę śledzenia COM+. Wszyscy użytkownicy uzyskują te same dane bez obsługi metryk niestandardowych. |
Po zarejestrowaniu subskrypcji użytkownik nie otrzymuje żadnych informacji o wystąpieniu aplikacji COM+ do momentu wystąpienia zdarzenia. |
Dane śledzenia dla wszystkich wystąpień aplikacji COM+ mogą być pobierane w dowolnym momencie. |
Obsługuje tylko mechanizm subskrypcji oparty na zdarzeniach COM+ dla konsumentów. |
Obsługuje zarówno mechanizm subskrypcji oparty na zdarzeniach COM+ i sondowanie w interfejsie serwera lokalnego COM. |
Przykłady | |
Powiadomienia, gdy metoda jest wywoływana lub zwracana. |
Średni czas odpowiedzi rozmowy, liczba wywołań metody, które zakończyły się powodzeniem lub niepowodzeniem w ostatnim okresie, liczba obiektów aktualnie uczestniczących w wywołaniu metody. |
Powiadomienia, gdy obiekt jest dodawany do puli obiektów lub uzyskiwany z puli obiektów. |
Liczba obiektów w puli, łączna liczba obiektów. |
Powiadomienia o uruchomieniu, wstrzymaniu lub recyklingu aplikacji serwera COM+. |
Status procesu aplikacji serwera COM+ (na przykład, czy jest wstrzymany lub recyklingowany). |
Powiadomienia o rozpoczęciu, przygotowaniu, przerwaniu i zatwierdzeniu zdarzeń transakcji. |
Brak odpowiednika. |
Powiadomienia o pomyślnych i nieudanych próbach uwierzytelniania na poziomie wywołania metody. |
Brak odpowiednika. |
Mimo że śledzenie COM+ jest bardziej ograniczone pod względem zakresu danych i elastyczności w obliczaniu metryk, udostępniane metryki powinny być wystarczające dla wielu różnych programów administracyjnych i diagnostycznych. Korzystanie ze śledzenia COM+, jeśli to możliwe, może uprościć projekt tych programów. Ponadto użycie śledzenia COM+ w systemach produkcyjnych może mieć znacznie mniejszy wpływ na wydajność, dzięki czemu jest bardziej odpowiednie dla narzędzi do monitorowania w czasie rzeczywistym.
Jak funkcja COM+ Tracking zbiera dane
Po uruchomieniu procesu aplikacji serwera COM+ program COM+ rejestruje proces przy użyciu serwera monitora , składnika aplikacji systemowej. Składniki w aplikacjach biblioteki COM+ oraz w kontekstach usług bez składników (SWC) również obsługują śledzenie. Po utworzeniu składnika biblioteki lub kontekstu SWC w procesie COM+ rejestruje proces na serwerze trackera, jeśli nie zarejestrowano go wcześniej.
COM+ aktualizuje statystyki dla śledzonego procesu, gdy w procesie wystąpią pewne zdarzenia, takie jak utworzenie obiektu lub ukończenie wywołania metody. Zaktualizowane dane są okresowo przesyłane do serwera trackera, w którym momencie stają się dostępne dla użytkowników. Serwer śledzenia jest również odpowiedzialny za obliczanie niektórych metryk używanych przez funkcje ponownego użycia aplikacji COM+ i monitorowania zawieszania się. Te dane są również dostępne dla użytkowników.
Dane śledzenia są zorganizowane zgodnie z procesem, który wygenerował dane. Dane na poziomie poszczególnych aplikacji com+ lub składników w procesie są również dostępne dla użytkowników, którzy potrzebują tych informacji.
Zdarzenia a sondowanie
Śledzenie COM+ obsługuje dwa mechanizmy dla użytkownika w celu pobrania danych śledzenia z serwera trackera, mechanizm subskrypcji oparty na zdarzeniach COM+ i interfejs lokalnego serwera COM.
Programy, które muszą być okresowo powiadamiane o zaktualizowanych danych śledzenia, mogą zarejestrować subskrypcję dla interfejsu zdarzeń IComTrackingInfoEvents. Mniej więcej co trzy sekundy serwer trackera wywołuje metodę IComTrackingInfoEvents::OnNewTrackingInfo każdego subskrybenta, wysyłając najnowsze dane śledzenia w formie obiektu kolekcji. Ten obiekt implementuje interfejs IComTrackingInfoCollection, a subskrybenci mogą nawigować po tej kolekcji, aby znaleźć interesujące ich dane.
Z różnych powodów może mieć to więcej sensu dla programu, aby ankietować serwer trackera o dane. Na przykład narzędzie do monitorowania może wymagać aktualizacji znacznie rzadziej niż program, który wyświetla stan w interfejsie użytkownika. Ponadto program może używać tylko niewielkiej części danych śledzenia dostępnych dla systemu (na przykład narzędzie może monitorować wydajność wystąpień pojedynczej aplikacji COM+). Model subskrypcji wysyła każdemu subskrybentowi dane śledzenia dla wszystkich aplikacji COM+ w każdym powiadomieniu i jest to odpowiedzialność subskrybenta za znalezienie żądanych danych. Na koniec, zdarzenia COM+ to mechanizm powiadamiania o zdarzeniach na zasadzie najlepszej próby. Nie podano niezawodnych usług dostarczania komunikatów i nie ma możliwości, aby subskrybent wykrył, że serwer trackera nie wysłał powiadomienia.
Program, który wymaga większej kontroli nad pobieraniem danych śledzenia, może użyć interfejsu IGetAppTrackerData serwera trackera.