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-Sachbearbeiter namens CRM-Wiederherstellungsmitarbeiter erstellen.
Bei der normalen Verwendung von CRMs wird erwartet, dass Transaktionen kurzlebig sind, und daher sind CRM-Worker und CRM-Kompensatoren für einen kurzen Zeitraum vorhanden, in der Regel nur wenige Sekunden. Die Überwachungsschnittstellen sind daher so konzipiert, dass zu einem bestimmten Zeitpunkt ein Momentaufnahme des Zustands der ausführenden CRMs gegeben wird. Wenn bei einem der CRMs Probleme auftreten, können die Überwachungsschnittstellen verwendet werden, um das problematische CRM auf Null zu setzen, um die Protokolldatensätze zu überprüfen und die Transaktion bei Bedarf abzubrechen.
Im Folgenden finden Sie die drei CRM-Überwachungsschnittstellen und Beschreibungen ihrer Funktionsweise.
Schnittstelle | BESCHREIBUNG |
---|---|
ICrmMonitor |
Mithilfe von ICrmMonitor::GetClerks kann ein Momentaufnahme der aktuellen Gruppe aktiver CRM-Mitarbeiter innerhalb der Serveranwendung abgerufen werden. Daraus kann ein bestimmtes OBJEKT der CRM-Mitarbeitersammlung gefunden und abgefragt werden, einschließlich des aktuellen Status der Transaktion und der protokollarischen Datensätze, die vom CRM geschrieben wurden. Wenn das Überwachungstool ermittelt hat, welcher Sachbearbeiter von Interesse ist, ruft es ICrmMonitor::HoldClerk auf, um eine ICrmMonitorLogRecords-Schnittstelle für diesen bestimmten Mitarbeiter abzurufen. Zu diesem Zeitpunkt enthält das Überwachungstool einen Verweis auf diesen Sachbearbeiter, und wenn die Transaktion abgeschlossen ist, wird der Sachbearbeiter im Arbeitsspeicher gespeichert und erst freigegeben, wenn das Überwachungstool abgeschlossen ist. |
ICrmMonitorClerks |
Über diese Schnittstelle kann das clerk-Auflistungsobjekt nach Informationen zum Zustand der Clerk-Auflistung zum Zeitpunkt des Abrufens gesucht werden. Zu diesen Informationen gehören die Anzahl der Sachbearbeiter, die ProgID des vom Sachbearbeiter verwendeten CRM-Kompensators, die Beschreibung, die zum Zeitpunkt der Registrierung des CRM-Kompensators (mit ICrmLogControl::RegisterCompensator), die Transaktionseinheits-ID und die Aktivitäts-ID angegeben wurde. Einzelne Sachbearbeiter werden auch eindeutig durch einen "Clerk instance CLSID" identifiziert, bei dem es sich nicht um eine COM CLSID im üblichen Sinne handelt, sondern einfach um eine eindeutige GUID, die diesen bestimmten Sachbearbeiter für seine Lebensdauer identifiziert. |
ICrmMonitorLogRecords |
Diese Schnittstelle kann verwendet werden, um den aktuellen Status der Transaktion abzufragen, um herauszufinden, wie viele Protokolleinträge dieser CRM-Mitarbeiter geschrieben hat, und um die tatsächlichen Protokolldaten abzurufen. Die Protokolldatensätze werden von der ICrmMonitorLogRecords-Schnittstelle im gleichen Format bereitgestellt, das sie ursprünglich geschrieben haben (mit ICrmLogControl). Darüber hinaus können ICrmMonitorLogRecords optional implementiert werden, um die Protokolldatensätze in ein sichtbares Format zu konvertieren, sodass sie mit einem generischen Überwachungstool dargestellt werden können. Da ICrmMonitorLogRecords direkt auf dem CRM-Mitarbeiter implementiert wird, können Sie QueryInterface für ICrmLogControl (auch für den CRM-Mitarbeiter implementiert) verwenden. Dies kann dann verwendet werden, um die Transaktion bei Bedarf direkt abzubrechen (ICrmLogControl::ForceTransactionToAbort). |