Freigeben über


COM+-Nachverfolgung

Mit dem COM+-Nachverfolgungsdienst können Sie ihre eigenen Verwaltungs- und Diagnoseprogramme erstellen, die die status und leistung der ausgeführten COM+-Anwendungen nachverfolgen. Die COM+-Nachverfolgung enthält statistische Informationen zur Verwendung von COM+-Anwendungen sowie status Informationen, z. B. ob eine COM+-Serveranwendung instance angehalten oder wiederverwendet wurde. Tools können Nachverfolgungsinformationen in der Diagnoseüberwachung oder zu Anzeigezwecken verwenden. Beispielsweise verwendet das Component Services-Verwaltungstool com+-Nachverfolgung, um die status von COM+-Anwendungsinstanzen in den Ordnern COM+-Anwendungen und Ausgeführte Prozesse anzuzeigen.

Com+-Nachverfolgung berechnet und aktualisiert in regelmäßigen Abständen eine Reihe von häufig verwendeten Metriken, sodass diese Informationen für Programme zur Verfügung gestellt werden, die sie benötigen. Es ist vergleichbar mit der COM+-Instrumentierung, dass beide Dienste automatisch Daten von COM+-Anwendungsinstanzen sammeln und diese Daten für Consumer zur Verfügung stellen. Es gibt jedoch einige wichtige Unterschiede zwischen diesen Diensten, sowohl in der bereitgestellten Funktionalität als auch in der typischen Nutzung. In der folgenden Tabelle sind diese Unterschiede zusammengefasst.

COM+-Instrumentierung COM+-Nachverfolgung
Differenzierte Daten. Der COM+-Instrumentierungsdienst benachrichtigt registrierte Abonnenten über einzelne diskrete Ereignisse (z. B. methodeberufen, Objekt zerstört), die in einer COM+-Anwendung instance auftreten.
Aggregierte Daten. Die COM+-Nachverfolgung berechnet und aktualisiert regelmäßig häufig verwendete Metriken für die status und Leistung von COM+-Anwendungsinstanzen.
Ereignisabonnenten berechnen Metriken in der Regel selbst mithilfe von Ad-hoc-Algorithmen und Richtlinien.
Metriken werden automatisch vom COM+-Nachverfolgungsdienst berechnet. Alle Consumer erhalten die gleichen Daten, ohne dass benutzerdefinierte Metriken unterstützt werden.
Nach der Registrierung eines Abonnements erhält der Consumer keine Informationen zu einer COM+-Anwendung instance, bis ein Ereignis eintritt.
Überwachungsdaten für alle COM+-Anwendungsinstanzen können jederzeit abgerufen werden.
Unterstützt nur einen com+-ereignisbasierten Abonnementmechanismus für Consumer.
Unterstützt sowohl einen ereignisbasierten COM+-Abonnementmechanismus als auch die Abfrage auf einer lokalen COM-Serverschnittstelle.
Beispiele
Benachrichtigungen, wenn eine Methode aufgerufen oder zurückgegeben wird.
Durchschnittliche Anrufantwortzeit, Anzahl von Methodenaufrufen, die in einem letzten Zeitraum erfolgreich oder fehlgeschlagen sind, Anzahl der Objekte, die sich derzeit in einem Methodenaufruf befinden.
Benachrichtigungen, wenn ein Objekt dem Objektpool hinzugefügt oder aus diesem abgerufen wird.
Anzahl der Objekte im Pool, Gesamtanzahl der Objekte.
Benachrichtigungen, wenn eine COM+-Serveranwendung gestartet, angehalten oder wiederverwendet wird.
Status des COM+-Serveranwendungsprozesses (z. B. ob er angehalten oder wiederverwendet wird).
Benachrichtigungen über Transaktionsstart-, Vorbereitungs-, Abbruch- und Commitereignisse.
Keine Entsprechung
Benachrichtigungen über erfolgreiche und fehlgeschlagene Methodenaufrufebenenauthentifizierungsversuche.
Keine Entsprechung

Obwohl die COM+-Nachverfolgung hinsichtlich des Datenumfangs und der Flexibilität beim Berechnen von Metriken eingeschränkter ist, sollten die bereitgestellten Metriken für eine Vielzahl von Verwaltungs- und Diagnoseprogrammen ausreichend sein. Die Verwendung von COM+-Tracking, wenn möglich, kann den Entwurf dieser Programme vereinfachen. Darüber hinaus kann die Verwendung von COM+-Nachverfolgung in Produktionssystemen eine deutlich geringere Auswirkung auf die Leistung haben, sodass sie für Echtzeitüberwachungstools besser geeignet ist.

Wie COM+-Nachverfolgung Daten sammelt

Wenn ein COM+-Serveranwendungsprozess gestartet wird, registriert COM+ den Prozess beim Tracker-Server, einer Komponente der Systemanwendung. Komponenten in COM+-Bibliotheksanwendungen und -Diensten ohne Komponentenkontexte (SWC) unterstützen ebenfalls die Nachverfolgung. Wenn eine Bibliothekskomponente oder ein SWC-Kontext in einem Prozess erstellt wird, registriert COM+ den Prozess beim Nachverfolgungsserver, sofern er noch nicht registriert wurde.

COM+ aktualisiert Statistiken für einen nachverfolgten Prozess, wenn bestimmte Ereignisse im Prozess auftreten, z. B. die Erstellung eines Objekts oder das Abschließen eines Methodenaufrufs. Aktualisierte Daten werden in regelmäßigen Abständen an den Nachverfolgungsserver übermittelt, sodass sie für Consumer verfügbar sind. Der Nachverfolgungsserver ist auch für die Berechnung einiger metriken verantwortlich, die von den Com+-Anwendungsrecycling- und Hängenüberwachungsfeatures verwendet werden. Diese Daten sind auch für Consumer verfügbar.

Die Nachverfolgungsdaten sind entsprechend dem Prozess organisiert, der die Daten generiert hat. Daten auf der Ebene einzelner COM+-Anwendungen oder -Komponenten im Prozess sind auch für Consumer verfügbar, die diese Informationen benötigen.

Ereignisse im Vergleich zum Abruf

DIE COM+-Nachverfolgung unterstützt zwei Mechanismen für einen Consumer zum Abrufen von Nachverfolgungsdaten vom Trackerserver: einen COM+-ereignisbasierten Abonnementmechanismus und eine lokale COM-Serverschnittstelle.

Programme, die regelmäßig mit aktualisierten Nachverfolgungsdaten benachrichtigt werden müssen, können ein Abonnement für die IComTrackingInfoEvents-Ereignisschnittstelle registrieren. Ungefähr alle drei Sekunden ruft der Nachverfolgungsserver die IComTrackingInfoEvents::OnNewTrackingInfo-Methode jedes Abonnenten auf und sendet die neuesten Nachverfolgungsdaten in Form eines Sammlungsobjekts. Dieses Objekt implementiert die IComTrackingInfoCollection-Schnittstelle , und Abonnenten können durch diese Sammlung navigieren, um die Daten zu finden, die sie interessieren.

Aus verschiedenen Gründen kann es für ein Programm sinnvoller sein, den Nachverfolgungsserver nach Daten abzufragen. Beispielsweise benötigt ein Überwachungstool möglicherweise viel seltener Updates als ein Programm, das status in einer Benutzeroberfläche anzeigt. Außerdem kann ein Programm nur einen kleinen Teil der für das System verfügbaren Nachverfolgungsdaten verwenden (z. B. kann ein Tool nur die Leistung von Instanzen einer einzelnen COM+-Anwendung überwachen). Das Abonnementmodell sendet jedem Abonnenten die Überwachungsdaten für alle COM+-Anwendungen in jeder Benachrichtigung, und es liegt in der Verantwortung des Abonnenten, die benötigten Daten zu finden. Schließlich sind COM+-Ereignisse ein Benachrichtigungsmechanismus für Ereignisse mit bestmöglichem Aufwand. Zuverlässige Nachrichtenübermittlungsdienste werden nicht bereitgestellt, und ein Abonnent kann nicht erkennen, dass der Nachverfolgungsserver keine Benachrichtigung senden konnte.

Ein Programm, das eine bessere Kontrolle über den Abruf von Trackingdaten benötigt, kann die IGetAppTrackerData-Schnittstelle des Tracker-Servers verwenden.