LogRecordSequence.TailPinned Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sinaliza a necessidade de mover a parte final 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);
}
Comentários
Você pode disparar esse evento quando a sequência de registros ficar sem espaço. Quando esse evento é acionado, a parte final da sequência (ou seja, o número de sequência base) é movida para frente para liberar espaço.
O evento pode ser acionado a qualquer momento quando a sequência de registro decide que deve liberar espaço, por qualquer motivo. Por exemplo, o mecanismo de política CLFS pode decidir disparar o evento quando determinar que as caudas de dois clientes de log que compartilham o mesmo arquivo de log estão muito distantes. Liberar espaço pode ser feito gravando áreas de reinicialização ou truncando o log e usando o AdvanceBaseSequenceNumber método para limpar o espaço. O exemplo de código na seção Exemplo demonstra a segunda abordagem.
Você também pode chamar o WriteRestartArea método fora do TailPinned evento para liberar espaço. Uma área de reinicialização é semelhante a um ponto de verificação em outros sistemas de processamento de log. Chamar esse método indica que o aplicativo considera todos os registros anteriores antes da área de reinicialização como totalmente concluída e utilizável para acréscimo de registros futuros. Semelhante a qualquer outro registro, o registro gravado por esse método requer espaço livre real no log para funcionar.