LogRecordSequence.BeginReserveAndAppend Metodo

Definizione

Avvia un'operazione asincrona di prenotazione e accodamento.Begins an asynchronous reserve and append operation.

Overload

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

Avvia un'operazione asincrona di prenotazione e accodamento.Begins an asynchronous reserve and append operation. Questo metodo non può essere ereditato.This method cannot be inherited.

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

Avvia un'operazione asincrona di prenotazione e accodamento.Begins an asynchronous reserve and append operation. Questo metodo non può essere ereditato.This method cannot be inherited.

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

Avvia un'operazione asincrona di prenotazione e accodamento.Begins an asynchronous reserve and append operation. Questo metodo non può essere ereditato.This method cannot be inherited.

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

Parametri

data
ArraySegment<Byte>

Elenco di segmenti della matrice di byte che verranno concatenati e accodati come record.A list of byte array segments that will be concatenated and appended as the record.

nextUndoRecord
SequenceNumber

Numero di sequenza del record successivo nell'ordine specificato dall'utente.The sequence number of the next record in the user-specified order.

previousRecord
SequenceNumber

Numero di sequenza del record successivo nell'ordine Precedente.The sequence number of the next record in Previous order.

recordAppendOptions
RecordAppendOptions

Valore valido di RecordAppendOptions che specifica la modalità da utilizzare per la scrittura dei dati.A valid value of RecordAppendOptions that specifies how the data should be written.

reservationCollection
ReservationCollection

raccolta di prenotazioni nella quale fare prenotazioni.The reservation collection to make reservations in.

reservations
Int64[]

Prenotazioni da fare, in byte.The reservations to make, in bytes.

callback
AsyncCallback

Callback asincrono facoltativo, da chiamare quando l'accodamento è completo.An optional asynchronous callback, to be called when the append is complete.

state
Object

Oggetto fornito dall'utente che distingue questa specifica richiesta di accodamento asincrona dalle altre richieste.A user-provided object that distinguishes this particular asynchronous append request from other requests.

Restituisce

Interfaccia IAsyncResult che rappresenta questa operazione di cancellazione asincrona che può essere ancora in sospeso.An IAsyncResult that represents this asynchronous operation, which could still be pending.

Implementazioni

Eccezioni

userRecord o previousRecord non è valido per questa sequenza.userRecord or previousRecord is not valid for this sequence.

-oppure--or- Non è possibile aggiungere data perché le dimensioni superano le dimensioni massime dei record.data cannot be appended because it is larger than the maximum record size.

-oppure--or- reservations non è stato creato da questa sequenza di record.reservations was not created by this record sequence.

Uno o più argomenti sono null.One or more of the arguments are null.

userRecord o previousRecord non è compreso tra i numeri di sequenza di base e finale di questa sequenza.userRecord or previousRecord is not between the base and last sequence numbers of this sequence.

Impossibile eseguire la richiesta a causa di un'eccezione I/O imprevista.The request could not be performed because of an unexpected I/O exception.

-oppure--or-

Impossibile eseguire la richiesta a causa di un errore del dispositivo di I/O.The request could not be performed because of an I/O device error.

L'operazione non può essere eseguita perché la sequenza di record è stata aperta con accesso in sola lettura.The operation cannot be performed because the record sequence was opened with read-only access.

Il metodo è stato chiamato dopo l'eliminazione sequenza.The method was called after the sequence has been disposed of.

Memoria insufficiente per continuare l'esecuzione del programma.There is not enough memory to continue the execution of the program.

Sequenza di record piena.The record sequence is full.

L'accesso per la sequenza dei log specificata viene negato dal sistema operativo.Access for the specified log sequence is denied by the operating system.

Impossibile trovare una prenotazione abbastanza grande da soddisfare il parametro data in reservations.No reservation large enough to fit data can be found in reservations.

Commenti

È necessario passare l'oggetto della classe IAsyncResult restituito da questo metodo al metodo EndReserveAndAppend per garantire che l'operazione di accodamento sia stata completata e che sia possibile liberare appropriatamente le risorse.You should pass the IAsyncResult returned by this method to the EndReserveAndAppend method to ensure that the append operation has completed and resources can be freed appropriately. Se si è verificato un errore durante un accodamento asincrono, non viene generata alcuna eccezione fino a quando il metodo EndReserveAndAppend non viene chiamato con l'interfaccia IAsyncResult restituita da questo metodo.If an error has occurred during an asynchronous append, an exception is not thrown until the EndReserveAndAppend method is called with the IAsyncResult returned by this method.

I dati contenuti nel parametro data verranno concatenati in una matrice a byte singolo per essere quindi accodati come record.Data contained in the data parameter will be concatenated into a single byte array for appending as the record. Tuttavia, non esiste alcun provisioning per suddividere dati in segmenti della matrice una volta letto il record.However, no provision is made for splitting data back into array segments when the record is read.

Le prenotazioni specificate vengono aggiunte alla raccolta di prenotazioni fornita mediante un'operazione atomica con un'operazione di accodamento record.The specified reservations are added to the provided reservation collection in an atomic operation with a record append operation. Se l'accodamento non riesce, non verrà riservato alcuno spazio.If the append fails, no space is reserved.

In genere questo metodo può essere completato prima che il record sia stato scritto.Normally, this method may complete before the record has been written. Per garantire che un record è stato scritto, specificare il flag ForceFlush utilizzando il parametro recordAppendOptions oppure chiamare il metodo Flush.To ensure that a record has been written, either specify the ForceFlush flag using the recordAppendOptions parameter, or call the Flush method.

Se una sequenza di record è stata eliminata o se si passa un argomento non valido, le eccezioni vengono immediatamente generate all'interno di questa operazione.If a record sequence has been disposed of, or if you pass an invalid argument, exceptions are thrown immediately within this operation. Gli errori che si verificano durante una richiesta di accodamento asincrona, ad esempio un errore del disco durante una richiesta di I/O, comporteranno la generazione di eccezioni quando viene chiamato il metodo EndReserveAndAppend.Errors that occurred during an asynchronous append request, for example, a disk failure during the I/O request, will result in exceptions being thrown when the EndReserveAndAppend method is called.

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

Avvia un'operazione asincrona di prenotazione e accodamento.Begins an asynchronous reserve and append operation. Questo metodo non può essere ereditato.This method cannot be inherited.

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

Parametri

data
IList<ArraySegment<Byte>>

Elenco di segmenti della matrice di byte che verranno concatenati e accodati come record.A list of byte array segments that will be concatenated and appended as the record.

userRecord
SequenceNumber

Numero di sequenza del record successivo nell'ordine specificato dall'utente.The sequence number of the next record in the user-specified order.

previousRecord
SequenceNumber

Numero di sequenza del record successivo nell'ordine Precedente.The sequence number of the next record in Previous order.

recordAppendOptions
RecordAppendOptions

Valore valido di RecordAppendOptions che specifica la modalità da utilizzare per la scrittura dei dati.A valid value of RecordAppendOptions that specifies how the data should be written.

reservationCollection
ReservationCollection

raccolta di prenotazioni nella quale fare prenotazioni.The reservation collection to make reservations in.

reservations
Int64[]

Prenotazioni da fare, in byte.The reservations to make, in bytes.

callback
AsyncCallback

Callback asincrono facoltativo, da chiamare quando l'accodamento è completo.An optional asynchronous callback, to be called when the append is complete.

state
Object

Oggetto fornito dall'utente che distingue questa specifica richiesta di accodamento asincrona dalle altre richieste.A user-provided object that distinguishes this particular asynchronous append request from other requests.

Restituisce

Interfaccia IAsyncResult che rappresenta questa operazione di cancellazione asincrona che può essere ancora in sospeso.An IAsyncResult that represents this asynchronous operation, which could still be pending.

Implementazioni

Eccezioni

Uno o più argomenti non sono validi.One or more of the arguments is invalid.

Si è verificato un errore di I/O durante l'accodamento del record.An I/O error occurred while appending the record.

La sequenza di record non ha potuto fare abbastanza spazio per contenere il nuovo record, o fare la prenotazione.The record sequence could not make enough free space to contain the new record, or to make the reservation.

Il metodo è stato chiamato dopo l'eliminazione sequenza.The method was called after the sequence has been disposed of.

Commenti

È necessario passare l'oggetto della classe IAsyncResult restituito da questo metodo al metodo EndReserveAndAppend per garantire che l'operazione di accodamento sia stata completata e che sia possibile liberare appropriatamente le risorse.You should pass the IAsyncResult returned by this method to the EndReserveAndAppend method to ensure that the append operation has completed and resources can be freed appropriately. Se si è verificato un errore durante un accodamento asincrono, non viene generata alcuna eccezione fino a quando il metodo EndReserveAndAppend non viene chiamato con l'interfaccia IAsyncResult restituita da questo metodo.If an error has occurred during an asynchronous append, an exception is not thrown until the EndReserveAndAppend method is called with the IAsyncResult returned by this method.

I dati contenuti nel parametro data verranno concatenati in una matrice a byte singolo per essere quindi accodati come record.Data contained in the data parameter will be concatenated into a single byte array for appending as the record. Tuttavia, non esiste alcun provisioning per suddividere dati in segmenti della matrice una volta letto il record.However, no provision is made for splitting data back into array segments when the record is read.

Le prenotazioni specificate vengono aggiunte alla raccolta di prenotazioni fornita mediante un'operazione atomica con un'operazione di accodamento record.The specified reservations are added to the provided reservation collection in an atomic operation with a record append operation. Se l'accodamento non riesce, non verrà riservato alcuno spazio.If the append fails, no space is reserved.

In genere questo metodo può essere completato prima che il record sia stato scritto.Normally, this method may complete before the record has been written. Per garantire che un record è stato scritto, specificare il flag ForceFlush utilizzando il parametro recordAppendOptions oppure chiamare il metodo Flush.To ensure that a record has been written, either specify the ForceFlush flag using the recordAppendOptions parameter, or call the Flush method.

Se una sequenza di record è stata eliminata o se si passa un argomento non valido, le eccezioni vengono immediatamente generate all'interno di questa operazione.If a record sequence has been disposed of, or if you pass an invalid argument, exceptions are thrown immediately within this operation. Gli errori che si verificano durante una richiesta di accodamento asincrona, ad esempio un errore del disco durante una richiesta di I/O, comporteranno la generazione di eccezioni quando viene chiamato il metodo EndReserveAndAppend.Errors that occurred during an asynchronous append request, for example, a disk failure during the I/O request, will result in exceptions being thrown when the EndReserveAndAppend method is called.

Si applica a