COM+-CRM-Überwachungsschnittstellen

Die CRM-Infrastruktur stellt eine Reihe von Schnittstellen bereit, die zum Überwachen der CRMs innerhalb einer bestimmten Serveranwendung verwendet werden können. Für den Zugriff auf die Überwachungsschnittstellen muss eine Komponente, die in der Serveranwendung ausgeführt wird, zunächst einen spezialisierten CRM-Clerk erstellen, der als CRM-Wiederherstellungs-Clerk bezeichnet wird.

Bei der normalen Verwendung von CRMs wird erwartet, dass Transaktionen kurzlebig sind, und daher sind CRM-Workers und CRM-Kompensatoren für einen kurzen Zeitraum vorhanden, in der Regel nur wenige Sekunden. Die Überwachungsschnittstellen sind daher so konzipiert, dass sie eine Momentaufnahme des Zustands der ausgeführten CRMs zu einem bestimmten Zeitpunkt erstellen. Wenn bei einer der CRMs Probleme auftreten, können die Überwachungsschnittstellen für das problematische CRM verwendet werden, um die Protokolldatensätze zu überprüfen und die Transaktion bei Bedarf zu abbrechen.

Im Folgenden finden Sie die drei CRM-Überwachungsschnittstellen und Beschreibungen ihrer Funktionsweise.

Schnittstelle BESCHREIBUNG
ICrmMonitor
Mithilfe von ICrmMonitor::GetClerkskann eine Momentaufnahme der aktuellen Gruppe aktiver CRM-Clerks in der Serveranwendung erstellt werden. Dadurch kann ein bestimmtes objekt der CRM-Clerksammlung gefunden und abgefragt werden, einschließlich des aktuellen Status seiner Transaktion und der vom CRM geschriebenen Protokolldatensätze.
Wenn das Überwachungstool ermittelt hat, welcher Clerk von Interesse ist, ruft es ICrmMonitor::HoldClerk auf, um eine ICrmMonitorLogRecords-Schnittstelle für diesen bestimmten Clerk zu erhalten. An diesem Punkt hält das Überwachungstool einen Verweis auf diesen Clerk, und wenn die Transaktion abgeschlossen ist, wird der Clerk im Arbeitsspeicher gehalten und erst freigegeben, wenn das Überwachungstool abgeschlossen ist.
ICrmMonitorClerks
Mithilfe dieser Schnittstelle kann das Clerk-Sammlungsobjekt nach Informationen zum Zustand der Clerksammlung zum Zeitpunkt der Erfassung durchsucht werden. Diese Informationen umfassen die Anzahl der Clerks, die ProgID des CRM-Kompensators, die vom Clerk verwendet wird, die Beschreibung, die zum Zeitpunkt der Registrierung des CRM-Kompensators angegeben wurde (mithilfe von ICrmLogControl::RegisterCompensator),die Transaktionseinheits-ID und die Aktivitäts-ID. Einzelne Clerks werden auch eindeutig durch eine "Clerkinstanz-CLSID" identifiziert, bei der es sich nicht um eine COM-CLSID im üblichen Sinn des Begriffs handelt, sondern einfach um eine eindeutige GUID, die diesen bestimmten Clerk für seine Lebensdauer identifiziert.
ICrmMonitorLogRecords
Diese Schnittstelle kann verwendet werden, um den aktuellen Status der Transaktion abfragt, um herauszufinden, wie viele Protokolldatensätze dieser CRM-Clerk geschrieben hat, und um die tatsächlichen Protokolldatensatzdaten zu erhalten. Die Protokolldatensätze werden von der ICrmMonitorLogRecords-Schnittstelle in dem format bereitgestellt, in dem sie ursprünglich geschrieben wurden (mithilfe von ICrmLogControl). Darüber hinaus kann ICrmMonitorLogRecords optional implementiert werden, um die Protokolldatensätze in ein darstellbares Format zu konvertieren, sodass sie mit einem generischen Überwachungstool dargestellt werden können.
Da ICrmMonitorLogRecords direkt auf dem CRM-Clerk implementiert wird, können Sie QueryInterface für ICrmLogControl (auch im CRM-Clerk implementiert) verwenden. Dies kann dann verwendet werden, um die Transaktion bei Bedarf direkt zu abbrechen (ICrmLogControl::ForceTransactionToAbort).

COM+ Compensating Resource Manager Concepts