LogRecordSequence.TailPinned Olay

Tanım

Dizinin kuyruğunu taşıma ihtiyacını bildirir.Signals the need to move the tail of the sequence.

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ü

EventHandler<TailPinnedEventArgs>

Uygulamalar

Örnekler

Bu örnek, olayının nasıl kullanılacağını gösterir TailPinned .This example shows how to use the TailPinned event.

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 sırasında alan tükeniyor durumunda bu olayı tetikedebilirsiniz.You can fire this event when the record sequence has run out of space. Bu olay harekete geçirildiğinde, sıranın kuyruğu (yani, taban sıra numarası) boş alana ileri taşınır.When this event is fired, the tail of the sequence (that is, the base sequence number) is moved forward to free up space.

Bu olay, kayıt sırası herhangi bir nedenle alan boşaltmaya karar verdiğinde herhangi bir zamanda tetiklenebilir.The event can be fired at any time when the record sequence decides that it must free up space, for any reason. Örneğin, CLFS ilke altyapısı, aynı günlük dosyasını paylaşan iki günlük istemcisinin yazılarının çok fazla farklı olduğunu belirlediğinde olayı harekete geçmeye karar verebilir.For example, the CLFS policy engine may decide to fire the event when it determines that the tails of two log clients sharing the same log file are too far apart. Boşluk boşaltma, yeniden başlatma alanları yazılarak veya günlüğün kesilmesiyle veya AdvanceBaseSequenceNumber boş alan temizlemek için yöntemi kullanılarak yapılabilir.Freeing space can be done by either writing restart areas, or truncating the log and using the AdvanceBaseSequenceNumber method to clear space. Örnek bölümünde kod örneği ikinci yaklaşımı gösterir.The code sample in the Example section demonstrates the second approach.

Ayrıca, WriteRestartArea TailPinned alanı boşaltmak için olayın dışında yöntemi çağırabilirsiniz.You can also call the WriteRestartArea method outside of the TailPinned event to free space. Yeniden başlatma alanı, diğer günlük işleme sistemlerindeki bir denetim noktasına benzer.A restart area is similar to a checkpoint in other log processing systems. Bu yöntemi çağırmak, uygulamanın önceki tüm kayıtları yeniden başlatma alanından önce tam olarak tamamlandığına ve gelecekte kayıt ekleme için kullanılabilir olduğunu gösterir.Calling this method indicates that the application considers all prior records before the restart area as fully completed, and usable for future record appends. Diğer kayıtlarla benzer şekilde, bu yöntem tarafından yazılan kayıt, günlükteki fiili boş alanı gerektirir.Similar to any other records, the record written by this method requires actual free space in the log to function.

Şunlara uygulanır