LogRecordSequence.TailPinned Olay
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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, alan boşaltmak için dizinin kuyruğu (yani, temel sıra numarası) 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 birbirinden çok uzak olduğunu belirlediğinde olayı tetiklemeye karar verebilir. Alan boşaltma işlemi, yeniden başlatma alanları yazılarak 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.
Ayrıca, boş alan için olayın dışında WriteRestartArea yöntemini çağırabilirsinizTailPinned. 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 tamamlandı olarak kabul ettiğini ve gelecekteki kayıt eklemeleri için kullanılabilir olduğunu gösterir. Diğer tüm kayıtlara benzer şekilde, bu yöntem tarafından yazılan kayıt, günlükte işlev için gerçek boş alan gerektirir.