LogRecordSequence.TailPinned Evento
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Segnala la necessità di spostare la coda della sequenza.
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)
Tipo evento
Implementazioni
Esempio
In questo esempio viene illustrato come usare l'evento TailPinned .
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
È possibile attivare questo evento quando la sequenza di record ha esaurito lo spazio. Quando viene generato questo evento, la parte finale della sequenza , ovvero il numero di sequenza di base, viene spostato in avanti per liberare spazio.
L'evento può essere generato in qualsiasi momento quando la sequenza di record decide che deve liberare spazio, per qualsiasi motivo. Ad esempio, il motore dei criteri CLFS può decidere di attivare l'evento quando determina che le code di due client di log che condividono lo stesso file di log sono troppo distanti. Liberare spazio può essere eseguito scrivendo aree di riavvio o troncando il log e usando il AdvanceBaseSequenceNumber metodo per cancellare lo spazio. L'esempio di codice nella sezione Esempio illustra il secondo approccio.
È anche possibile chiamare il WriteRestartArea metodo all'esterno dell'evento TailPinned per liberare spazio. Un'area di riavvio è simile a un checkpoint in altri sistemi di elaborazione log. La chiamata a questo metodo indica che l'applicazione considera tutti i record precedenti prima che l'area di riavvio venga completata completamente e utilizzabile per le accodamenti di record futuri. Analogamente a qualsiasi altro record, il record scritto da questo metodo richiede spazio libero effettivo nel log per funzionare.