Freigeben über


IRecordSequence Schnittstelle

Definition

Stellt eine generische Schnittstelle zu einer Sequenz von Datensätzen bereit.

public interface class IRecordSequence : IDisposable
public interface IRecordSequence : IDisposable
type IRecordSequence = interface
    interface IDisposable
Public Interface IRecordSequence
Implements IDisposable
Abgeleitet
Implementiert

Hinweise

Die IRecordSequence-Schnittstelle stellt eine abstrakte Schnittstelle für einen datensatzorientierten Stream bereit. Eine IRecordSequence-Instanz kann verwendet werden, um Protokolldatensätze zu lesen und zu schreiben.

Die IRecordSequence-Schnittstelle stellt die folgenden Funktionen bereit:

  • Fügen Sie Protokolldatensätze mit den Append-Methoden an.

  • Lesen Sie die angefügten Datensätze mit der ReadLogRecords-Methode.

  • Schreiben Sie einen speziellen Datensatz für den Neustart mit der WriteRestartArea-Methode.

  • Lesen Sie Datensätze für den Neustart vom zuletzt geschriebenen Neustartdatensatz mit der ReadRestartAreas-Methode.

  • Leeren Sie die Datensätze mithilfe der -Methode in einen Flush dauerhaften Speicher.

  • Reservieren Sie Speicherplatz zum Anfügen von Datensätzen.

  • Geben Sie Protokollspeicherplatz frei, indem Sie die Basis des Protokolls vorrücken.

  • Empfangen Sie Benachrichtigungen zu TailPinned-Ereignissen, um die Basis des Protokolls zu verschieben und Speicherplatz freizugeben.

Protokolldatensätze werden einer IRecordSequence-Instanz angefügt, und jeder Protokolldatensatz erhält eine einmalige Sequenznummer. Sequenznummern nehmen innerhalb einer angegebenen Datensatzsequenz immer gleichmäßig zu. Ein Protokolldatensatz besteht aus transparenten Daten, die in einer IRecordSequence aus Arraysegmenten von Byte für eine IList-Instanz bereitgestellt werden.

Die IRecordSequence-Schnittstelle macht auch einige grundlegende Eigenschaften verfügbar, die Informationen über Protokollbegrenzungen liefern.

  • Die BaseSequenceNumber-Eigenschaft enthält die Sequenznummer des ersten gültigen Datensatzes in der Datensatzsequenz.

  • Die LastSequenceNumber-Eigenschaft enthält eine Sequenznummer, die in jedem Fall größer ist als die Sequenznummer des letzten angefügten Datensatzes.

  • Die RestartSequenceNumber-Eigenschaft enthält die Sequenznummer des letzten geschriebenen Neustartbereichs.

  • Die MaximumRecordLength-Eigenschaft enthält die Größe des größten Datensatzes, der der Sequenz angefügt oder aus der Sequenz gelesen werden kann.

  • Die ReservedBytes-Eigenschaft enthält die Gesamtgröße aller in dieser Datensatzsequenz vorgenommenen Reservierungen.

  • Wenn die RetryAppend-Eigenschaft auf true eingestellt ist und ein Append-Vorgang fehlschlägt, da die Sequenz nicht genügend Speicherplatz aufweist, versucht die Datensatzsequenz, Speicherplatz freizugeben und den Anfügevorgang zu wiederholen.

Eigenschaften

BaseSequenceNumber

Ruft beim Überschreiben in einer abgeleiteten Klasse die Sequenznummer des ersten gültigen Datensatzes in der aktuellen IRecordSequence ab.

LastSequenceNumber

Ruft beim Überschreiben in einer abgeleiteten Klasse die Sequenznummer ab, die größer als der letzte angefügte Datensatz ist.

MaximumRecordLength

Ruft beim Überschreiben in einer abgeleiteten Klasse die Größe des größten Datensatzes in Byte ab, der dieser Sequenz angefügt oder aus ihr gelesen werden kann.

ReservedBytes

Ruft beim Überschreiben in einer abgeleiteten Klasse die Gesamtzahl von Byte ab, die reserviert wurden.

RestartSequenceNumber

Ruft beim Überschreiben in einer abgeleiteten Klasse die Sequenznummer des zuletzt geschriebenen Neustartbereichs ab.

RetryAppend

Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob Anfügevorgänge automatisch wiederholt werden, wenn das Protokoll voll ist.

Methoden

AdvanceBaseSequenceNumber(SequenceNumber)

Rückt die Basissequenznummer des Protokolls vor.

Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions)

Schreibt beim Überschreiben in einer abgeleiteten Klasse einen Protokolldatensatz in die IRecordSequence.

Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)

Fügt beim Überschreiben in einer abgeleiteten Klasse der IRecordSequence mithilfe von zuvor in der Sequenz reserviertem Speicherplatz einen Protokolldatensatz an.

Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions)

Fügt beim Überschreiben in einer abgeleiteten Klasse der IRecordSequence einen Protokolldatensatz an.

Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)

Fügt beim Überschreiben in einer abgeleiteten Klasse der IRecordSequence mithilfe von zuvor in der Sequenz reserviertem Speicherplatz einen Protokolldatensatz an.

BeginAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, AsyncCallback, Object)

Leitet beim Überschreiben in einer abgeleiteten Klasse einen asynchronen Anfügevorgang ein.

BeginAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, AsyncCallback, Object)

Leitet beim Überschreiben in einer abgeleiteten Klasse einen Anfügevorgang ein, wobei der zuvor in der Sequenz reservierte Speicherplatz verwendet wird.

BeginAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, AsyncCallback, Object)

Leitet beim Überschreiben in einer abgeleiteten Klasse einen Anfügevorgang ein, wobei der zuvor in der Sequenz reservierte Speicherplatz verwendet wird.

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

Leitet beim Überschreiben in einer abgeleiteten Klasse einen Anfügevorgang ein, wobei der zuvor in der Sequenz reservierte Speicherplatz verwendet wird.

BeginFlush(SequenceNumber, AsyncCallback, Object)

Leitet beim Überschreiben in einer abgeleiteten Klasse einen asynchronen Löschvorgang ein, wobei der zuvor in der Sequenz reservierte Speicherplatz verwendet wird.

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

Leitet beim Überschreiben in einer abgeleiteten Klasse einen asynchronen Reservierungs- und Anfügevorgang ein.

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

Leitet beim Überschreiben in einer abgeleiteten Klasse einen asynchronen Reservierungs- und Anfügevorgang ein.

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

Leitet beim Überschreiben in einer abgeleiteten Klasse einen asynchronen Neustartbereich-Schreibvorgang ein, wobei der zuvor in der Sequenz reservierte Speicherplatz verwendet wird.

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

Leitet beim Überschreiben in einer abgeleiteten Klasse einen asynchronen Neustartbereich-Schreibvorgang ein, wobei der zuvor in der Sequenz reservierte Speicherplatz verwendet wird.

CreateReservationCollection()

Erstellt beim Überschreiben in einer abgeleiteten Klasse einen neuen ReservationCollection.

Dispose()

Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen.

(Geerbt von IDisposable)
EndAppend(IAsyncResult)

Beendet beim Überschreiben in einer abgeleiteten Klasse einen asynchronen Anfügevorgang.

EndFlush(IAsyncResult)

Beendet beim Überschreiben in einer abgeleiteten Klasse einen asynchronen Löschvorgang.

EndReserveAndAppend(IAsyncResult)

Beendet beim Überschreiben in einer abgeleiteten Klasse einen asynchronen Reservierungs- und Anfügevorgang.

EndWriteRestartArea(IAsyncResult)

Beendet beim Überschreiben in einer abgeleiteten Klasse einen asynchronen Neustartbereich-Schreibvorgang.

Flush()

Stellt beim Überschreiben einer abgeleiteten Klasse sicher, dass alle angefügten Datensätze geschrieben wurden.

Flush(SequenceNumber)

Stellt beim Überschreiben in einer abgeleiteten Klasse sicher, dass alle angefügten Datensätze bis zu dem Datensatz mit der angegebenen Sequenznummer dauerhaft geschrieben wurden.

ReadLogRecords(SequenceNumber, LogRecordEnumeratorType)

Gibt beim Überschreiben in einer abgeleiteten Klasse eine zählbare Auflistung der Datensätze in der Sequenz zurück.

ReadRestartAreas()

Gibt beim Überschreiben in einer abgeleiteten Klasse eine zählbare Auflistung der Neustartbereiche in der Sequenz zurück.

ReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])

Führt beim Überschreiben in einer abgeleiteten Klasse automatisch eine einzelne Reservierung durch und fügt der Sequenz einen Datensatz an.

ReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])

Führt beim Überschreiben in einer abgeleiteten Klasse automatisch eine einzelne Reservierung durch und fügt der Sequenz einen Datensatz an.

WriteRestartArea(ArraySegment<Byte>)

Schreibt beim Überschreiben in einer abgeleiteten Klasse einen Neustartbereich in die IRecordSequence.

WriteRestartArea(ArraySegment<Byte>, SequenceNumber)

Schreibt beim Überschreiben in einer abgeleiteten Klasse einen Neustartbereich in die IRecordSequence und aktualisiert die Basissequenznummer.

WriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection)

Schreibt beim Überschreiben in einer abgeleiteten Klasse einen Neustartbereich in die IRecordSequence und aktualisiert die Basissequenznummer mithilfe einer Reservierung.

WriteRestartArea(IList<ArraySegment<Byte>>)

Schreibt beim Überschreiben in einer abgeleiteten Klasse einen Neustartbereich in die IRecordSequence.

WriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber)

Schreibt beim Überschreiben in einer abgeleiteten Klasse einen Neustartbereich in die IRecordSequence und aktualisiert die Basissequenznummer.

WriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection)

Schreibt beim Überschreiben in einer abgeleiteten Klasse einen Neustartbereich in die IRecordSequence und aktualisiert die Basissequenznummer mithilfe einer Reservierung.

Ereignisse

TailPinned

Tritt auf, wenn die Datensatzsequenz bestimmt, dass das Ende vorgerückt werden muss.

Gilt für: