Udostępnij za pośrednictwem


LogRecordSequence.TailPinned Zdarzenie

Definicja

Sygnalizuje potrzebę przeniesienia ogona sekwencji.

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) 

Typ zdarzenia

Implementuje

Przykłady

W tym przykładzie pokazano, jak używać TailPinned zdarzenia.

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

}  

Uwagi

To zdarzenie można uruchomić, gdy sekwencja rekordów zabraknie miejsca. Gdy to zdarzenie zostanie wyzwolone, ogon sekwencji (czyli numer sekwencji bazowej) zostanie przeniesiony do przodu, aby zwolnić miejsce.

Zdarzenie może zostać wyzwolone w dowolnym momencie, gdy sekwencja rekordów zdecyduje, że musi zwolnić miejsce z dowolnego powodu. Na przykład aparat zasad CLFS może zdecydować się na wyzwolenie zdarzenia, gdy określa, że ogony dwóch klientów dziennika współużytkujących ten sam plik dziennika są zbyt daleko od siebie. Zwalnianie miejsca można zrobić, zapisując obszary ponownego uruchamiania lub obcinając dziennik i używając AdvanceBaseSequenceNumber metody w celu wyczyszczenia miejsca. Przykładowy kod w sekcji Przykład przedstawia drugie podejście.

Możesz również wywołać metodę WriteRestartArea poza zdarzeniem TailPinned , aby zwolnić miejsce. Obszar ponownego uruchamiania jest podobny do punktu kontrolnego w innych systemach przetwarzania dzienników. Wywołanie tej metody wskazuje, że aplikacja uwzględnia wszystkie wcześniejsze rekordy przed w pełni ukończonym obszarem ponownego uruchamiania i można go używać do dołączania przyszłych rekordów. Podobnie jak w przypadku innych rekordów, rekord napisany przez tę metodę wymaga rzeczywistego wolnego miejsca w dzienniku do działania.

Dotyczy