LogRecordSequence.TailPinned Evento

Definição

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.

Aplica-se a