LogRecordSequence.TailPinned Evento

Definição

Sinaliza a necessidade de mover a cauda da sequência.

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 de Evento

Implementações

Exemplos

Este exemplo mostra como usar o TailPinned evento.

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

}

Observações

Podes disparar este evento quando a sequência de registos ficar sem espaço. Quando este evento é disparado, a cauda da sequência (ou seja, o número base da sequência) é movida para a frente para libertar espaço.

O evento pode ser lançado a qualquer momento em que a sequência de registos decidir que deve libertar espaço, por qualquer motivo. Por exemplo, o motor de políticas CLFS pode decidir disparar o evento quando determinar que as caudas de dois clientes de log que partilham o mesmo ficheiro de log estão demasiado distantes entre si. Libertar espaço pode ser feito escrevendo áreas de reinício ou truncando o registo e usando o AdvanceBaseSequenceNumber método para libertar espaço. O exemplo de código na secção de Exemplo demonstra a segunda abordagem.

Também pode chamar o WriteRestartArea método fora do TailPinned evento como espaço livre. Uma área de reinício é semelhante a um ponto de controlo noutros sistemas de processamento de registos. Chamar este método indica que a aplicação considera todos os registos anteriores antes da área de reinício como totalmente concluídos e utilizáveis para futuras adições de registos. Tal como qualquer outro registo, o registo escrito por este método requer espaço livre real no registo para funcionar.

Aplica-se a