Compartir a través de


LogRecordSequence.BeginReserveAndAppend Método

Definición

Comienza una reserva asincrónica y una operación de anexado.

Sobrecargas

BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

Comienza una reserva asincrónica y una operación de anexado. Este método no se puede heredar.

BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

Comienza una reserva asincrónica y una operación de anexado. Este método no se puede heredar.

BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

Comienza una reserva asincrónica y una operación de anexado. Este método no se puede heredar.

public:
 virtual IAsyncResult ^ BeginReserveAndAppend(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservationCollection, cli::array <long> ^ reservations, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReserveAndAppend (ArraySegment<byte> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservationCollection, long[] reservations, AsyncCallback callback, object state);
abstract member BeginReserveAndAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
override this.BeginReserveAndAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
Public Function BeginReserveAndAppend (data As ArraySegment(Of Byte), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservationCollection As ReservationCollection, reservations As Long(), callback As AsyncCallback, state As Object) As IAsyncResult

Parámetros

data
ArraySegment<Byte>

Una lista de segmentos de la matriz de bytes que se concatenarán y anexarán como el registro.

nextUndoRecord
SequenceNumber

El número de secuencia del registro siguiente en el orden especificado por el usuario.

previousRecord
SequenceNumber

El número de secuencia del registro siguiente en orden anterior.

recordAppendOptions
RecordAppendOptions

Un valor válido de RecordAppendOptions que especifica cómo se deberían escribir los datos.

reservationCollection
ReservationCollection

La colección de reservas en la que realizar las reservas.

reservations
Int64[]

Las reservas que se han de realizar, en bytes.

callback
AsyncCallback

Devolución de llamada asincrónica opcional, a la que se llamará cuando haya finalizado el anexado.

state
Object

Objeto proporcionado por el usuario que distingue esta solicitud de anexado asincrónica de otras.

Devoluciones

Un IAsyncResult que representa esta operación asincrónica, que podría estar aún pendiente.

Implementaciones

Excepciones

userRecord o previousRecord no es válido para esta secuencia.

o bien

No se pueden anexar data porque es mayor que el tamaño de registro máximo.

o bien

Esta secuencia del registro no creó reservations.

Uno o varios argumentos tienen el valor null.

El valor de userRecord o de previousRecord no está entre los números de secuencia base y último de esta secuencia.

La solicitud no se pudo realizar debido a una excepción de E/S inesperada.

o bien

La solicitud no se pudo realizar debido a un error de dispositivo de E/S.

La operación no se puede realizar porque la secuencia del registro se abrió con acceso de solo lectura.

Se llamó al método una vez eliminada la secuencia.

No hay bastante memoria para continuar la ejecución del programa.

La secuencia del registro está completa.

El sistema operativo ha denegado el acceso a la secuencia de registro especificado.

No se puede encontrar en data ninguna reserva lo suficientemente grande para ajustar reservations.

Comentarios

Debería pasar IAsyncResult devuelto por este método al método EndReserveAndAppend para asegurarse que la operación de anexado ha finalizado y que se pueden liberar los recursos apropiadamente. Si se ha producido un error durante el anexado asincrónico, no se produce una excepción hasta que se llame al método EndReserveAndAppend con el IAsyncResult que devuelve este método.

Los datos contenidos en el parámetro data se concatenarán en una matriz de bytes única para anexarlos como el registro. Sin embargo, no se ha realizado ninguna disposición para dividir los datode nuevo en los segmentos de la matriz cuando se lee el registro.

Las reservas especificadas se agregan a la colección de reservas proporcionada en una operación atómica con una operación de anexado de registro. Si no se produce el anexado, no se reserva ningún espacio.

Normalmente, este método puede completarse antes de que se haya escrito el registro. Para asegurarse de que se ha escrito un registro, especifique la marca ForceFlush utilizando el parámetro recordAppendOptions o llame al método Flush.

Si una secuencia del registro se ha eliminado, o si se pasa un argumento no válido, las excepciones se producen inmediatamente en esta operación. Los errores que se produjeron durante una solicitud de anexado asincrónica, como, por ejemplo, un error de disco durante la petición de E/S, producirá excepciones que se producen cuando se llama al método EndReserveAndAppend.

Se aplica a

BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

Comienza una reserva asincrónica y una operación de anexado. Este método no se puede heredar.

public:
 virtual IAsyncResult ^ BeginReserveAndAppend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber userRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservationCollection, cli::array <long> ^ reservations, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReserveAndAppend (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber userRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservationCollection, long[] reservations, AsyncCallback callback, object state);
abstract member BeginReserveAndAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
override this.BeginReserveAndAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
Public Function BeginReserveAndAppend (data As IList(Of ArraySegment(Of Byte)), userRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservationCollection As ReservationCollection, reservations As Long(), callback As AsyncCallback, state As Object) As IAsyncResult

Parámetros

data
IList<ArraySegment<Byte>>

Una lista de segmentos de la matriz de bytes que se concatenarán y anexarán como el registro.

userRecord
SequenceNumber

El número de secuencia del registro siguiente en el orden especificado por el usuario.

previousRecord
SequenceNumber

El número de secuencia del registro siguiente en orden anterior.

recordAppendOptions
RecordAppendOptions

Un valor válido de RecordAppendOptions que especifica cómo se deberían escribir los datos.

reservationCollection
ReservationCollection

La colección de reservas en la que realizar las reservas.

reservations
Int64[]

Las reservas que se han de realizar, en bytes.

callback
AsyncCallback

Devolución de llamada asincrónica opcional, a la que se llamará cuando haya finalizado el anexado.

state
Object

Objeto proporcionado por el usuario que distingue esta solicitud de anexado asincrónica de otras.

Devoluciones

Un IAsyncResult que representa esta operación asincrónica, que podría estar aún pendiente.

Implementaciones

Excepciones

Uno o varios argumentos no son válidos.

Ha ocurrido un error de E/S al anexar un registro.

La secuencia del registro no pudo liberar espacio suficiente para contener el nuevo registro o para hacer la reserva.

Se llamó al método una vez eliminada la secuencia.

Comentarios

Debería pasar IAsyncResult devuelto por este método al método EndReserveAndAppend para asegurarse que la operación de anexado ha finalizado y que se pueden liberar los recursos apropiadamente. Si se ha producido un error durante el anexado asincrónico, no se produce una excepción hasta que se llame al método EndReserveAndAppend con el IAsyncResult que devuelve este método.

Los datos contenidos en el parámetro data se concatenarán en una matriz de bytes única para anexarlos como el registro. Sin embargo, no se ha realizado ninguna disposición para dividir los datode nuevo en los segmentos de la matriz cuando se lee el registro.

Las reservas especificadas se agregan a la colección de reservas proporcionada en una operación atómica con una operación de anexado de registro. Si no se produce el anexado, no se reserva ningún espacio.

Normalmente, este método puede completarse antes de que se haya escrito el registro. Para asegurarse de que se ha escrito un registro, especifique la marca ForceFlush utilizando el parámetro recordAppendOptions o llame al método Flush.

Si una secuencia del registro se ha eliminado, o si se pasa un argumento no válido, las excepciones se producen inmediatamente en esta operación. Los errores que se produjeron durante una solicitud de anexado asincrónica, como, por ejemplo, un error de disco durante la petición de E/S, producirá excepciones que se producen cuando se llama al método EndReserveAndAppend.

Se aplica a