Partager via


LogRecordSequence.BeginWriteRestartArea Méthode

Définition

Commence une opération asynchrone d'écriture de la zone de reprise.

Surcharges

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

Commence une opération asynchrone d'écriture de la zone de reprise en utilisant l'espace précédemment réservé dans la séquence. Cette méthode ne peut pas être héritée.

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

Commence une opération asynchrone d'écriture de la zone de reprise en utilisant l'espace précédemment réservé dans la séquence. Cette méthode ne peut pas être héritée.

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

Commence une opération asynchrone d'écriture de la zone de reprise en utilisant l'espace précédemment réservé dans la séquence. Cette méthode ne peut pas être héritée.

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

Paramètres

data
IList<ArraySegment<Byte>>

Liste des segments de tableau d'octets qui seront concaténés et ajoutés en tant qu'enregistrement.

newBaseSeqNum
SequenceNumber

Nouveau numéro de séquence de base. Le numéro de séquence spécifié doit être supérieur ou égal au numéro de séquence de base actuel.

reservationCollection
ReservationCollection

ReservationCollection qui contient la réservation qui doit être utilisée pour cette zone de reprise.

callback
AsyncCallback

Rappel asynchrone facultatif à appeler lorsque l'écriture de la zone de reprise est terminée.

state
Object

Objet fourni par l'utilisateur qui distingue cette requête d'écriture asynchrone de la zone de reprise des autres requêtes.

Retours

IAsyncResult qui représente l'opération d'écriture asynchrone de la zone de reprise qui pourrait être encore en attente.

Implémente

Exceptions

newBaseSeqNum n'est pas valide pour cette séquence.

- ou -

Le numéro de séquence de démarrage de l'énumération du journal spécifié n'est pas valide.

- ou -

data ne peut pas être ajouté car il est supérieur à la taille d'enregistrement maximale.

- ou -

reservationCollection n'a pas été créé par cette séquence d'enregistrement.

Un ou plusieurs paramètres ont la valeur null.

Une fin ou base d'archive nouvelle ou existante du journal actif n'est pas valide.

- ou -

newBaseSeqNum n'est pas compris entre le numéro de base et le dernier numéro de la séquence.

La requête n'a pas pu être exécutée en raison d'une exception d'E/S inattendue.

- ou -

La requête n'a pas pu être exécutée en raison d'une erreur de périphérique d'E/S.

La méthode a été appelée après la suppression de la séquence.

La mémoire disponible n'est pas suffisante pour continuer l'exécution du programme.

L'accès à la séquence de journal spécifiée est refusé par le système d'exploitation.

La séquence d'enregistrement est complète.

Remarques

Vous devez passer le IAsyncResult retourné par cette méthode à la méthode EndWriteRestartArea pour vous assurer que l'opération d'écriture de la zone de reprise est terminée et que des ressources peuvent être libérées de façon appropriée. Si une erreur se produit pendant une opération d'écriture asynchrone de la zone de reprise, aucune exception n'est levée tant que la méthode EndWriteRestartArea n'est pas appelée avec le IAsyncResult retourné par cette méthode.

Les données contenues dans le paramètre data seront concaténées dans un tableau d'octets unique pour l'ajouter en tant qu'enregistrement. Toutefois, il n'est pas possible de rétablir les segments du tableau en fractionnant les données lors de la lecture de l'enregistrement.

Lorsque l'opération se termine correctement, cela signifie que le numéro de séquence de base a été mis à jour. Tous les enregistrements du journal avec des numéros de séquence inférieurs au nouveau numéro de séquence de base sont inaccessibles.

Si une ReservationCollection est spécifiée, la zone de reprise écrite utilise l’espace qui a été réservé précédemment, à l’aide d’une réservation contenue dans la collection. Si la méthode réussit, elle utilisera la plus petite réservation qui peut stocker les données et cette réservation sera supprimée de la collection.

Si une séquence d’enregistrement a été supprimée ou si vous passez un argument non valide, les exceptions sont immédiatement levées dans cette opération. Lorsque des erreurs se sont produites pendant une requête d'ajout asynchrone, par exemple, une défaillance du disque pendant la requête d'E/S, les exceptions sont levées lorsque la méthode EndWriteRestartArea est appelée.

S’applique à

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

Commence une opération asynchrone d'écriture de la zone de reprise en utilisant l'espace précédemment réservé dans la séquence. Cette méthode ne peut pas être héritée.

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

Paramètres

data
ArraySegment<Byte>

Segments de tableau d'octets qui seront concaténés et ajoutés en tant qu'enregistrement.

newBaseSeqNum
SequenceNumber

Nouveau numéro de séquence de base. Le numéro de séquence spécifié doit être supérieur ou égal au numéro de séquence de base actuel.

reservation
ReservationCollection

ReservationCollection qui contient la réservation qui doit être utilisée pour cette zone de reprise.

callback
AsyncCallback

Rappel asynchrone facultatif à appeler lorsque l'écriture de la zone de reprise est terminée.

state
Object

Objet fourni par l'utilisateur qui distingue cette requête d'écriture asynchrone de la zone de reprise des autres requêtes.

Retours

IAsyncResult qui représente l'opération d'écriture asynchrone de la zone de reprise qui pourrait être encore en attente.

Implémente

Exceptions

newBaseSeqNum n'est pas valide pour cette séquence.

- ou -

Le numéro de séquence de démarrage de l'énumération du journal spécifié n'est pas valide.

- ou -

data ne peut pas être ajouté car il est supérieur à la taille d'enregistrement maximale.

- ou -

reservation n'a pas été créé par cette séquence d'enregistrement.

Un ou plusieurs paramètres ont la valeur null.

Une fin ou base d'archive nouvelle ou existante du journal actif n'est pas valide.

- ou -

newBaseSeqNum n'est pas compris entre le numéro de base et le dernier numéro de la séquence.

La requête n'a pas pu être exécutée en raison d'une exception d'E/S inattendue.

- ou -

La requête n'a pas pu être exécutée en raison d'une erreur de périphérique d'E/S.

La méthode a été appelée après la suppression de la séquence.

La mémoire disponible n'est pas suffisante pour continuer l'exécution du programme.

L'accès à la séquence de journal spécifiée est refusé par le système d'exploitation.

La séquence d'enregistrement est complète.

Remarques

Vous devez passer le IAsyncResult retourné par cette méthode à la méthode EndWriteRestartArea pour vous assurer que l'opération d'écriture de la zone de reprise est terminée et que des ressources peuvent être libérées de façon appropriée. Si une erreur se produit pendant une opération d'écriture asynchrone de la zone de reprise, aucune exception n'est levée tant que la méthode EndWriteRestartArea n'est pas appelée avec le IAsyncResult retourné par cette méthode.

Les données contenues dans le paramètre data seront concaténées dans un tableau d'octets unique pour l'ajouter en tant qu'enregistrement. Toutefois, il n'est pas possible de rétablir les segments du tableau en fractionnant les données lors de la lecture de l'enregistrement.

Lorsque l'opération se termine correctement, cela signifie que le numéro de séquence de base a été mis à jour. Tous les enregistrements du journal avec des numéros de séquence inférieurs au nouveau numéro de séquence de base sont inaccessibles.

Si une ReservationCollection est spécifiée, la zone de reprise écrite utilise l’espace qui a été réservé précédemment, à l’aide d’une réservation contenue dans la collection. Si la méthode réussit, elle utilisera la plus petite réservation qui peut stocker les données et cette réservation sera supprimée de la collection.

Si une séquence d’enregistrement a été supprimée ou si vous passez un argument non valide, les exceptions sont immédiatement levées dans cette opération. Lorsque des erreurs se sont produites pendant une requête d'ajout asynchrone, par exemple, une défaillance du disque pendant la requête d'E/S, les exceptions sont levées lorsque la méthode EndWriteRestartArea est appelée.

S’applique à