LogRecordSequence.TailPinned Ereignis

Definition

Signalisiert das Erfordernis, das Ende der Sequenz zu verschieben.

public:
 virtual event EventHandler<System::IO::Log::TailPinnedEventArgs ^> ^ TailPinned;
public event EventHandler<System.IO.Log.TailPinnedEventArgs> TailPinned;
member this.TailPinned : EventHandler<System.IO.Log.TailPinnedEventArgs> 
Public Custom Event TailPinned As EventHandler(Of TailPinnedEventArgs) 

Ereignistyp

Implementiert

Beispiele

In diesem Beispiel wird die Verwendung des TailPinned-Ereignisses veranschaulicht.

recordSequence.RetryAppend = true;  
recordSequence.TailPinned += new EventHandler<TailPinnedEventArgs>(HandleTailPinned);  

void HandleTailPinned(object sender, TailPinnedEventArgs tailPinnedEventArgs)  
{  
   // tailPinnedEventArgs.TargetSequenceNumber is the target   
   // sequence number to free up space to.    
   // However, this sequence number is not necessarily valid.  We have  
   // to use this sequence number as a starting point for finding a  
   // valid point within the log to advance toward. You need to  
   // identify a record with a sequence number equal to, or greater  
   // than TargetSequenceNumber; let's call this   
   // realTargetSequenceNumber. Once found, move the base  

   recordSequence.AdvanceBaseSequenceNumber(realTargetSequenceNumber);  

}  

Hinweise

Sie können dieses Ereignis auslösen, wenn der Datensatzsequenz Speicherplatz ausgegangen ist. Wenn dieses Ereignis ausgelöst wird, wird das Ende der Sequenz (die Basissequenznummer) nach vorn verschoben, um Speicherplatz freizugeben.

Das Ereignis kann jederzeit ausgelöst werden, wenn die Datensatzsequenz aus einem beliebigen Grund Speicherplatz freigeben muss. So kann die CLFS-Richtlinien-Engine beispielsweise entscheiden, das Ereignis auszulösen, wenn sie feststellt, dass die Enden von zwei Anmeldeclients, die sich eine Protokolldatei teilen, zu weit auseinander liegen. Die Freigabe von Speicherplatz kann durch Schreiben von Neustartbereichen oder durch Abschneiden des Protokolls und Freigeben von Speicherplatz mit der AdvanceBaseSequenceNumber-Methode erfolgen. Im Codebeispiel im Abschnitt mit dem Beispiel wird der zweite Ansatz veranschaulicht.

Sie können auch die WriteRestartArea-Methode außerhalb des TailPinned-Ereignisses aufrufen, um Speicherplatz freizugeben. Ein Neustartbereich ist mit einem Prüfpunkt anderer Protokollverarbeitungssysteme vergleichbar. Beim Aufruf dieser Methode betrachtet die Anwendung alle vorherigen Datensätze vor dem Neustartbereich als abgeschlossen und für spätere Datensatzanhängevorgänge verfügbar. Ähnlich wie andere Datensätze erfordert der mit dieser Methode geschriebene Datensatz tatsächlich freien Speicherplatz im Protokoll, um funktionieren zu können.

Gilt für: