Metodo ICrmLogControl::WriteLogRecord (comsvcs.h)
Crm Worker e CRM Compensator usano questo metodo per scrivere record di log non strutturati nel log. Questo metodo viene in genere usato dai componenti CRM scritti in C++. I record vengono scritti in modo pigro nel log e devono essere forzati prima di diventare durevoli. Vedere ICrmLogControl::ForceLog.
Sintassi
HRESULT WriteLogRecord(
[in] BLOB [] rgBlob,
[in] ULONG cBlob
);
Parametri
[in] rgBlob
Matrice di BLOB che formano il record di log. UN BLOB è un tipo di dati di Windows usato per archiviare una quantità arbitraria di dati binari.
[in] cBlob
Numero di BLOB nella matrice.
Valore restituito
Questo metodo può restituire i valori seguenti.
Codice restituito | Descrizione |
---|---|
|
Metodo completato correttamente. |
|
Il conteggio del numero di BLOBs è zero. |
|
Un puntatore NULL è stato fornito come argomento. |
|
Questo metodo è stato chiamato nello stato errato; prima di RegisterCompensator o quando la transazione viene completata (CRM Worker). |
|
La transazione ha interrotto, probabilmente a causa di un timeout delle transazioni. |
Commenti
I record non strutturati sono semplicemente un buffer di byte. Il metodo implementa una funzionalità di raccolta consentendo alle sezioni del record di log CRM specifico di essere compilate da una matrice di BLOB, ovvero una struttura contenente un puntatore ai dati e un conteggio del numero di byte. Ciò riduce la copia dei dati, portando a una sola copia direttamente dallo spazio di memoria CRM nel buffer di Gestione log.
I record di log non strutturati e non strutturati non possono essere misti; WriteLogRecord o WriteLogRecordVariants può essere chiamato, ma non entrambi dallo stesso ruolo di lavoro CRM o CRM Compensator.
Non è consigliabile includere tipi di puntatore all'interno di strutture di dati contenute in BLOBs in un record di log. I riferimenti agli oggetti non sono più validi durante la fase di ripristino perché CRM Compensator viene eseguito in un processo diverso da quello del ruolo di lavoro CRM che ha scritto il record di log. Inclusi i tipi di puntatore all'interno di BLOB in un record di log possono causare l'arresto anomalo o il danneggiamento di un'applicazione durante il ripristino.
Requisiti
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | comsvcs.h |