LogRecordSequence.TailPinned Evento

Definizione

Segnala l'esigenza di spostare la coda della sequenza.Signals the need to move the tail of the sequence.

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) 

Implementazioni

Esempi

In questo esempio viene illustrato come utilizzare l'evento TailPinned:This example shows how to use the TailPinned event.

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);  
  
}  

Commenti

Questo evento può essere generato quando si verifica una condizione di spazio insufficiente nella sequenza di record.You can fire this event when the record sequence has run out of space. Quando viene generato questo evento, la coda della sequenza (ovvero il numero di sequenza di base) viene spostata in avanti per liberare spazio.When this event is fired, the tail of the sequence (that is, the base sequence number) is moved forward to free up space.

L'evento può essere generato in qualsiasi momento in cui la sequenza di record decide che è necessario liberare spazio, per una qualsiasi ragione.The event can be fired at any time when the record sequence decides that it must free up space, for any reason. Ad esempio, il motore dei criteri CLFS può decidere di generare l'evento quando determina che le code di due client di log che condividono lo stesso file di log sono troppo distanti.For example, the CLFS policy engine may decide to fire the event when it determines that the tails of two log clients sharing the same log file are too far apart. Il recupero dello spazio può essere effettuato scrivendo aree di riavvio o troncando il log e utilizzando il metodo AdvanceBaseSequenceNumber per il recupero dello spazio.Freeing space can be done by either writing restart areas, or truncating the log and using the AdvanceBaseSequenceNumber method to clear space. Il codice riportato nella sezione relativa agli esempi illustra la seconda possibilità.The code sample in the Example section demonstrates the second approach.

È inoltre possibile chiamare il metodo WriteRestartArea all'esterno dell'evento TailPinned per recuperare spazio.You can also call the WriteRestartArea method outside of the TailPinned event to free space. Un'area di riavvio è simile a un checkpoint in altri sistemi di elaborazione di log.A restart area is similar to a checkpoint in other log processing systems. La chiamata di questo metodo indica che l'applicazione considera tutti i record precedenti prima dell'area di riavvio come completi e utilizzabili per successive aggiunte di record.Calling this method indicates that the application considers all prior records before the restart area as fully completed, and usable for future record appends. Analogamente agli altri record, per poter funzionare, il record scritto da questo metodo richiede spazio disponibile effettivo nel log.Similar to any other records, the record written by this method requires actual free space in the log to function.

Si applica a