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
S_OK
La commande s'est correctement terminée.
E_INVALIDARG
Le nombre de objets blob est égal à zéro.
E_POINTER
Un pointeur NULL a été fourni en tant qu’argument.
XACT_E_WRONGSTATE
Cette méthode a été appelée dans un état incorrect ; avant RegisterCompensator ou lorsque la transaction est terminée (CRM Worker).
XACT_E_ABORTED
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

Voir aussi

ICrmLogControl