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


LogRecordSequence.BeginWriteRestartArea Метод

Определение

Начинает операцию записи в область перезапуска.

Перегрузки

BeginWriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Начинает асинхронную операцию записи в область перезапуска, используя пространство, которое было ранее зарезервировано в последовательности. Этот метод не может быть унаследован.

BeginWriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Начинает асинхронную операцию записи в область перезапуска, используя пространство, которое было ранее зарезервировано в последовательности. Этот метод не может быть унаследован.

BeginWriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Начинает асинхронную операцию записи в область перезапуска, используя пространство, которое было ранее зарезервировано в последовательности. Этот метод не может быть унаследован.

public:
 virtual IAsyncResult ^ BeginWriteRestartArea(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber newBaseSeqNum, System::IO::Log::ReservationCollection ^ reservationCollection, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginWriteRestartArea (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber newBaseSeqNum, System.IO.Log.ReservationCollection reservationCollection, AsyncCallback callback, object state);
abstract member BeginWriteRestartArea : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
override this.BeginWriteRestartArea : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
Public Function BeginWriteRestartArea (data As IList(Of ArraySegment(Of Byte)), newBaseSeqNum As SequenceNumber, reservationCollection As ReservationCollection, callback As AsyncCallback, state As Object) As IAsyncResult

Параметры

data
IList<ArraySegment<Byte>>

Список фрагментов массива байтов, которые будут сцеплены и добавлены в качестве записи.

newBaseSeqNum
SequenceNumber

Новый базовый порядковый номер. Заданный порядковый номер должен быть больше или равен текущему базовому порядковому номеру.

reservationCollection
ReservationCollection

Коллекция ReservationCollection, содержащая резервирование, которое следует использовать для данной области перезапуска.

callback
AsyncCallback

Необязательный асинхронный обратный вызов по завершении записи в области перезапуска.

state
Object

Предоставляемый пользователем объект, отличающий конкретный запрос на асинхронную запись в область перезапуска от других запросов.

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

Объект IAsyncResult представляет асинхронную операцию записи в область перезапуска, которая может все еще быть отложена.

Реализации

Исключения

Значение параметра newBaseSeqNum недопустимо для этой последовательности.

-или-

Указанный порядковый номер начала регистрационного перечисления недопустим.

-или-

Невозможно добавить параметр data, так как его размеры превышают максимальный размер записи.

-или-

Параметр reservationCollection не был создан этой последовательностью записи.

Один или несколько параметров имеют значение null.

Новая или существующая архивная цепочка или база активного журнала недействительна.

-или-

Значение параметра newBaseSeqNum не лежит между основным и последним порядковыми номерами этой последовательности.

Не удалось выполнить запрос, так как возникла неожиданная ошибка ввода-вывода.

-или-

Выполнить запрос невозможно из-за ошибки устройства ввода-вывода.

Метод был вызван после удаления последовательности.

Недостаточно памяти, чтобы продолжить выполнение программы.

Доступ к заданной последовательности журнала запрещен операционной системой.

Последовательность записей заполнена.

Комментарии

Чтобы обеспечить завершение операции записи в область перезапуска и освободить соответствующие ресурсы, необходимо передать значение IAsyncResult, возвращенное этим методом, в метод EndWriteRestartArea. Если ошибка возникла при выполнении операции асинхронной записи в область перезапуска, исключение не будет создано до тех пор, пока метод EndWriteRestartArea не будет вызван со значением IAsyncResult, возвращенным данным методом.

Данные, содержащиеся в параметре data, будут сцеплены в единый массив байтов для добавления в качестве записи. Однако не делается допущение об обратном разделении данных на фрагменты массива при чтении записи.

При успешном выполнении операции базовый порядковый номер обновляется. Все записи журнала с порядковыми номерами меньшими, чем новый базовый порядковый номер, недоступны.

Если задано ReservationCollection, записанная область перезапуска будет занимать место, ранее зарезервированное с помощью содержащегося в коллекции резервирования. Если метод завершается успешно, будет занята минимальная область резервирования, в которой поместятся данные, а эта область резервирования будет удалена из коллекции.

Если последовательность записей была удалена, или если передается неверный аргумент, исключения создаются немедленно, в пределах данной операции. Ошибки, возникшие при выполнении запроса асинхронного добавления, например ошибка диска в процессе запроса ввода-вывода, приводят к созданию исключений при вызове метода EndWriteRestartArea.

Применяется к

BeginWriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Начинает асинхронную операцию записи в область перезапуска, используя пространство, которое было ранее зарезервировано в последовательности. Этот метод не может быть унаследован.

public:
 virtual IAsyncResult ^ BeginWriteRestartArea(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber newBaseSeqNum, System::IO::Log::ReservationCollection ^ reservation, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginWriteRestartArea (ArraySegment<byte> data, System.IO.Log.SequenceNumber newBaseSeqNum, System.IO.Log.ReservationCollection reservation, AsyncCallback callback, object state);
abstract member BeginWriteRestartArea : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
override this.BeginWriteRestartArea : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
Public Function BeginWriteRestartArea (data As ArraySegment(Of Byte), newBaseSeqNum As SequenceNumber, reservation As ReservationCollection, callback As AsyncCallback, state As Object) As IAsyncResult

Параметры

data
ArraySegment<Byte>

Фрагменты массива байтов, которые будут сцеплены и добавлены в качестве записи.

newBaseSeqNum
SequenceNumber

Новый базовый порядковый номер. Заданный порядковый номер должен быть больше или равен текущему базовому порядковому номеру.

reservation
ReservationCollection

Коллекция ReservationCollection, содержащая резервирование, которое следует использовать для данной области перезапуска.

callback
AsyncCallback

Необязательный асинхронный обратный вызов по завершении записи в области перезапуска.

state
Object

Предоставляемый пользователем объект, отличающий конкретный запрос на асинхронную запись в область перезапуска от других запросов.

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

Объект IAsyncResult представляет асинхронную операцию записи в область перезапуска, которая может все еще быть отложена.

Реализации

Исключения

Значение параметра newBaseSeqNum недопустимо для этой последовательности.

-или-

Указанный порядковый номер начала регистрационного перечисления недопустим.

-или-

Невозможно добавить параметр data, так как его размеры превышают максимальный размер записи.

-или-

Параметр reservation не был создан этой последовательностью записи.

Один или несколько параметров имеют значение null.

Новая или существующая архивная цепочка или база активного журнала недействительна.

-или-

Значение параметра newBaseSeqNum не лежит между основным и последним порядковыми номерами этой последовательности.

Не удалось выполнить запрос, так как возникла неожиданная ошибка ввода-вывода.

-или-

Выполнить запрос невозможно из-за ошибки устройства ввода-вывода.

Метод был вызван после удаления последовательности.

Недостаточно памяти, чтобы продолжить выполнение программы.

Доступ к заданной последовательности журнала запрещен операционной системой.

Последовательность записей заполнена.

Комментарии

Чтобы обеспечить завершение операции записи в область перезапуска и освободить соответствующие ресурсы, необходимо передать значение IAsyncResult, возвращенное этим методом, в метод EndWriteRestartArea. Если ошибка возникла при выполнении операции асинхронной записи в область перезапуска, исключение не будет создано до тех пор, пока метод EndWriteRestartArea не будет вызван со значением IAsyncResult, возвращенным данным методом.

Данные, содержащиеся в параметре data, будут сцеплены в единый массив байтов для добавления в качестве записи. Однако не делается допущение об обратном разделении данных на фрагменты массива при чтении записи.

При успешном выполнении операции базовый порядковый номер обновляется. Все записи журнала с порядковыми номерами меньшими, чем новый базовый порядковый номер, недоступны.

Если задано ReservationCollection, записанная область перезапуска будет занимать место, ранее зарезервированное с помощью содержащегося в коллекции резервирования. Если метод завершается успешно, будет занята минимальная область резервирования, в которой поместятся данные, а эта область резервирования будет удалена из коллекции.

Если последовательность записей была удалена, или если передается неверный аргумент, исключения создаются немедленно, в пределах данной операции. Ошибки, возникшие при выполнении запроса асинхронного добавления, например ошибка диска в процессе запроса ввода-вывода, приводят к созданию исключений при вызове метода EndWriteRestartArea.

Применяется к