ICrmLogControl::WriteLogRecord 方法 (comsvcs.h)
CRM 辅助角色和 CRM 补偿器使用此方法将非结构化日志记录写入日志。 此方法通常由用 C++ 编写的 CRM 组件使用。 记录延迟写入日志,必须强制记录才能持久。 (请参阅 ICrmLogControl::ForceLog.)
语法
HRESULT WriteLogRecord(
[in] BLOB [] rgBlob,
[in] ULONG cBlob
);
参数
[in] rgBlob
构成日志记录的 BLOB 数组。 BLOB 是一种 Windows 数据类型,用于存储任意数量的二进制数据。
[in] cBlob
数组中的 BLOB 数。
返回值
此方法可以返回以下值。
返回代码 | 说明 |
---|---|
|
该方法已成功完成。 |
|
BLOB 数为零。 |
|
NULL 指针作为参数提供。 |
|
调用此方法时处于错误状态;在 RegisterCompensator 之前或事务完成 (CRM 辅助角色) 。 |
|
事务已中止,很可能是因为事务超时。 |
备注
非结构化记录只是字节缓冲区。 方法通过允许特定 CRM 日志记录的各部分从 BLOB 数组生成,该数组是一个包含指向数据的指针以及字节数的计数的结构,来实现收集功能。 这减少了数据的复制,导致只有一个直接从 CRM 内存空间复制到日志管理器的缓冲区中。
非结构化日志记录和结构化日志记录不能混合使用; WriteLogRecord 或 WriteLogRecordVariants 都可以由同一 CRM 辅助角色或 CRM 补偿器调用,但不能同时调用。
不应在日志记录的 BLOB 中包含的数据结构中包含指针类型。 对象引用在恢复阶段不再有效,因为 CRM 补偿器运行的进程与写入日志记录的 CRM 辅助角色的进程不同。 在日志记录中的 BLOB 中包含指针类型可能会导致应用程序在恢复期间自行崩溃或损坏。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | comsvcs.h |