Aracılığıyla paylaş


LogRecordSequence.TailPinned Olay

Tanım

Sıranın kuyruğunu taşıma gereksinimini belirtir.

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) 

Olay Türü

Uygulamalar

Örnekler

Bu örnekte olayın nasıl kullanılacağı gösterilmektedir TailPinned .

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

}  

Açıklamalar

Kayıt dizisinin alanı bittiğinde bu olayı tetikleyebilirsiniz. Bu olay tetiklendiğinde, sıranın kuyruğu (yani, temel dizi numarası) yer açmak için ileri taşınır.

Olay, kayıt dizisi herhangi bir nedenle alan boşaltması gerektiğine karar verdiyse, herhangi bir zamanda tetiklenebilir. Örneğin, CLFS ilke altyapısı, aynı günlük dosyasını paylaşan iki günlük istemcisinin kuyruklarının çok uzak olduğunu belirlediğinde olayı tetiklemeye karar verebilir. Alan boşaltma işlemi, yeniden başlatma alanları yazarak veya günlüğü keserek ve alanı temizlemek için yöntemini kullanarak AdvanceBaseSequenceNumber yapılabilir. Örnek bölümündeki kod örneği ikinci yaklaşımı gösterir.

Alan boşaltmak WriteRestartArea için olayın dışında TailPinned yöntemini de çağırabilirsiniz. Yeniden başlatma alanı, diğer günlük işleme sistemlerindeki denetim noktasına benzer. Bu yöntemin çağrılması, uygulamanın yeniden başlatma alanından önceki tüm kayıtları tamamen tamamlanmış ve gelecekteki kayıt eklemeleri için kullanılabilir olarak kabul ettiğini gösterir. Diğer tüm kayıtlara benzer şekilde, bu yöntem tarafından yazılan kaydın çalışması için günlükte gerçek boş alan gerekir.

Şunlara uygulanır