ICrmLogControl::WriteLogRecord-Methode (comsvcs.h)
Der CRM-Worker und der CRM-Kompensator verwenden diese Methode, um unstrukturierte Protokolldatensätze in das Protokoll zu schreiben. Diese Methode wird in der Regel von CRM-Komponenten verwendet, die in C++ geschrieben sind. Datensätze werden verzögert in das Protokoll geschrieben und müssen erzwungen werden, bevor sie dauerhaft werden. (Siehe ICrmLogControl::ForceLog.)
Syntax
HRESULT WriteLogRecord(
[in] BLOB [] rgBlob,
[in] ULONG cBlob
);
Parameter
[in] rgBlob
Ein Array von BLOBs, die den Protokolldatensatz bilden. Ein BLOB ist ein Windows-Datentyp, der zum Speichern einer beliebigen Menge von Binärdaten verwendet wird.
[in] cBlob
Die Anzahl der BLOBs im Array.
Rückgabewert
Diese Methode kann die folgenden Werte zurückgeben.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Die Methode wurde erfolgreich abgeschlossen. |
|
Die Anzahl der BLOBs ist null. |
|
Ein NULL-Zeiger wurde als Argument bereitgestellt. |
|
Diese Methode wurde im falschen Zustand aufgerufen. entweder vor RegisterCompensator oder beim Abschluss der Transaktion (CRM Worker). |
|
Die Transaktion wurde abgebrochen, höchstwahrscheinlich aufgrund eines Transaktionstimeouts. |
Hinweise
Unstrukturierte Datensätze sind einfach ein Bytespuffer. Die -Methode implementiert eine Gather-Funktion, indem Abschnitte des spezifischen CRM-Protokolldatensatzes aus einem Array von BLOBs erstellt werden können, bei dem es sich um eine Struktur handelt, die einen Zeiger auf die Daten und eine Anzahl der Bytes enthält. Dadurch wird das Kopieren von Daten reduziert, was dazu führt, dass nur eine Kopie direkt aus dem CRM-Arbeitsspeicher in den Puffer des Protokoll-Managers erfolgt.
Unstrukturierte und strukturierte Protokolldatensätze können nicht gemischt werden; Entweder WriteLogRecord oder WriteLogRecordVariants können aufgerufen werden, aber nicht beide von demselben CRM-Worker oder CRM-Kompensator.
Zeigertypen sollten in datenstrukturierten BLOBs nicht in einen Protokolldatensatz eingeschlossen werden. Objektverweise sind während der Wiederherstellungsphase nicht mehr gültig, da der CRM-Kompensator in einem anderen Prozess als der CRM-Worker ausgeführt wird, der den Protokolldatensatz geschrieben hat. Das Einschließen von Zeigertypen in BLOBs in einen Protokolldatensatz kann dazu führen, dass eine Anwendung während der Wiederherstellung abstürzt oder sich selbst beschädigt.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | comsvcs.h |