Méthode ICrmLogControl::WriteLogRecord (comsvcs.h)
Le worker CRM et le compensateur CRM utilisent cette méthode pour écrire des enregistrements de journal non structurés dans le journal. Cette méthode est généralement utilisée par les composants CRM écrits en C++. Les enregistrements sont écrits de manière paresseuse dans le journal et doivent être forcés avant de devenir durables. (Voir ICrmLogControl::ForceLog.)
Syntaxe
HRESULT WriteLogRecord(
[in] BLOB [] rgBlob,
[in] ULONG cBlob
);
Paramètres
[in] rgBlob
Tableau de objets BLOB qui forment l’enregistrement de journal. Un objet BLOB est un type de données Windows utilisé pour stocker une quantité arbitraire de données binaires.
[in] cBlob
Nombre de objets BLOB dans le tableau.
Valeur retournée
Cette méthode peut retourner les valeurs suivantes.
Code de retour | Description |
---|---|
|
La commande s'est correctement terminée. |
|
Le nombre de objets blob est égal à zéro. |
|
Un pointeur NULL a été fourni en tant qu’argument. |
|
Cette méthode a été appelée dans un état incorrect ; avant RegisterCompensator ou lorsque la transaction est terminée (CRM Worker). |
|
La transaction a été abandonnée, probablement en raison d’un délai d’expiration de la transaction. |
Remarques
Les enregistrements non structurés sont simplement une mémoire tampon d’octets. La méthode implémente une fonctionnalité de collecte en permettant de créer des sections de l’enregistrement de journal CRM spécifique à partir d’un tableau de objets blob, qui est une structure contenant un pointeur vers les données plus un nombre d’octets. Cela réduit la copie des données, ce qui entraîne une seule copie directement à partir de l’espace mémoire CRM dans la mémoire tampon du gestionnaire de journaux.
Les enregistrements de journal non structurés et structurés ne peuvent pas être mélangés ; WriteLogRecord ou WriteLogRecordVariants peuvent être appelés, mais pas tous les deux par le même worker CRM ou le même compensateur CRM.
Vous ne devez pas inclure de types de pointeurs dans les structures de données contenues dans les objets blob dans un enregistrement de journal. Les références d’objet ne sont plus valides pendant la phase de récupération, car la compensation CRM s’exécute dans un processus différent de celui du worker CRM qui a écrit l’enregistrement du journal. L’inclusion de types de pointeurs dans les objets blob dans un enregistrement de journal peut provoquer un blocage ou une corruption d’une application pendant la récupération.
Configuration requise
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | comsvcs.h |