Метод ICrmLogControl::WriteLogRecord (comsvcs.h)

Рабочая роль CRM и компенсатор CRM используют этот метод для записи неструктурированных записей журнала в журнал. Этот метод обычно используется компонентами CRM, написанными на C++. Записи записываются в журнал отложенно, и их необходимо принудительно принудить, прежде чем они станут устойчивыми. (См. раздел ICrmLogControl::ForceLog.)

Синтаксис

HRESULT WriteLogRecord(
  [in] BLOB [] rgBlob,
  [in] ULONG   cBlob
);

Параметры

[in] rgBlob

Массив больших двоичных объектов, образующих запись журнала. BLOB — это тип данных Windows, который используется для хранения произвольного объема двоичных данных.

[in] cBlob

Количество BLOB-объектов в массиве.

Возвращаемое значение

Этот метод может возвращать следующие значения.

Код возврата Описание
S_OK
Метод завершился успешно.
E_INVALIDARG
Количество BLOB-объектов равно нулю.
E_POINTER
В качестве аргумента указан указатель NULL .
XACT_E_WRONGSTATE
Этот метод был вызван в неправильном состоянии; либо до RegisterCompensator, либо при завершении транзакции (рабочая роль CRM).
XACT_E_ABORTED
Транзакция прервана, скорее всего, из-за времени ожидания транзакции.

Комментарии

Неструктурированные записи — это просто буфер байтов. Метод реализует возможность сбора, позволяя создавать разделы определенной записи журнала CRM из массива БОЛЬШИХ двоичных объектов, который представляет собой структуру, содержащую указатель на данные и количество байтов. Это сокращает объем копирования данных, что приводит к по одной копии непосредственно из памяти CRM в буфер диспетчера журналов.

Неструктурированные и структурированные записи журнала нельзя смешивать; Либо WriteLogRecord, либо WriteLogRecordVariants могут вызываться, но не одновременно одной рабочей ролью CRM или компенсатором CRM.

Не следует включать типы указателей в структуры данных, содержащиеся в больших двоичных объектах, в записи журнала. Ссылки на объекты больше не являются допустимыми на этапе восстановления, так как компенсатор CRM выполняется в процессе, отличном от процесса рабочей роли CRM, которая написала запись журнала. Включение типов указателей в большие двоичные объекты в запись журнала может привести к сбою или повреждению приложения во время восстановления.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header comsvcs.h

См. также раздел

ICrmLogControl