ReservationCollection.Add(Int64) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
分配预留并将其添加到集合中。 无法继承此方法。
public:
virtual void Add(long size);
public void Add (long size);
abstract member Add : int64 -> unit
override this.Add : int64 -> unit
Public Sub Add (size As Long)
参数
- size
- Int64
请求的预留的大小(以字节为单位)。
实现
例外
archiveTail
不在此序列的基序列号和最后一个序列号之间。
size
无效或超过最大预留大小。
创建存档快照时发生 I/O 错误。
该方法是在序列已释放之后调用的。
没有足够的内存来继续执行该程序。
操作系统拒绝了对指定的日志存储区的访问。
记录序列已满。
示例
下面的示例演示如何以手动方式生成预留。 请注意,只有在使用基于 CLFS 的 LogRecordSequence 类时才能执行此任务。
ReservationCollection reservations = recordSequence.CreateReservationCollection();
reservations.Add(lengthOfUndoRecord);
try
{
recordSequence.Append(recordData, userSqn, previousSqn, RecordAppendOptions.None);
}
catch (Exception)
{
reservations.Remove(lengthOfUndoRecord);
throw;
}
recordSequence.Append(undoRecordData, userSqn, previousSqn, RecordAppendOptions.ForceFlush, reservations);