LogRecordSequence.TailPinned Evento
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.