Поделиться через


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

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

Синтаксис

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

Параметры

[in] rgBlob

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

[in] cBlob

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

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

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

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

Замечания

Неструктурированные записи — это просто буфер байтов. Метод реализует возможность сбора, позволяя секциям конкретной записи журнала CRM создаваться из массива BLOB-объектов, которая является структурой, содержащей указатель на данные, а также количество байтов. Это уменьшает копирование данных, что приводит к только одной копии непосредственно из пространства памяти CRM в буфер диспетчера журналов.

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка comsvcs.h

См. также

ICrmLogControl