LogRecordSequence.AdvanceBaseSequenceNumber(SequenceNumber) Yöntem
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.
Günlüğün temel sıra numarasını ileri taşır. Bu yöntem devralınamaz.
public:
virtual void AdvanceBaseSequenceNumber(System::IO::Log::SequenceNumber newBaseSequenceNumber);
public void AdvanceBaseSequenceNumber (System.IO.Log.SequenceNumber newBaseSequenceNumber);
abstract member AdvanceBaseSequenceNumber : System.IO.Log.SequenceNumber -> unit
override this.AdvanceBaseSequenceNumber : System.IO.Log.SequenceNumber -> unit
Public Sub AdvanceBaseSequenceNumber (newBaseSequenceNumber As SequenceNumber)
Parametreler
- newBaseSequenceNumber
- SequenceNumber
Günlük için yeni tabanı SequenceNumber belirtir. Bu, geçerli temel sıra numarası ile günlüğün son sıra numarası (dahil) arasındaki aralıkta yer almalıdır.
Uygulamalar
Özel durumlar
newBaseSequenceNumber
bu dizi için geçerli değil.
Etkin günlüğün yeni veya var olan bir arşiv kuyruğu veya tabanı geçersiz.
-veya-
newBaseSequenceNumber
bu dizinin temel ve son sıra numaraları arasında değildir.
Beklenmeyen bir G/Ç özel durumu nedeniyle istek gerçekleştirilemedi.
-veya-
G/Ç cihazı hatası nedeniyle istek gerçekleştirilemedi.
Belirtilen günlüğün herhangi bir kapsamı yok. Bir kayıt dizisi kullanılmadan önce bir veya daha fazla uzantı oluşturulmalıdır.
yöntemi, sıra atıldıktan sonra çağrıldı.
Programın yürütülmesine devam etmek için yeterli bellek yok.
Belirtilen günlük dizisine erişim işletim sistemi tarafından reddedildi.
Kayıt sırası dolu.
Örnekler
Bu örnekte, bir günlük dizisinde yer açmak için metodunun TailPinned olayla birlikte nasıl kullanılacağı AdvanceBaseSequenceNumber gösterilmektedir.
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
Bu yöntem genellikle bir kayıtta TailPinned yer açmak için olayla birlikte kullanılır. Olay, TailPinned alan boşaltmak için dizinin kuyruğunun (yani temel sıra numarasının) ileriye taşınması gerektiğini gösterir. Alan boşaltma işlemi, yöntemini kullanarak WriteRestartArea yeniden başlatma alanları yazarak veya günlüğü keserek ve bir günlüğün temel sıra numarasını parametresi tarafından newBaseSequenceNumber
belirtilene ilerletmek için yöntemini kullanarak AdvanceBaseSequenceNumber yapılabilir. Örnek bölümündeki kod örneği ikinci yaklaşımı gösterir.
Bu yöntemi çağırmanın, yöntemi kullanarak WriteRestartArea yeni bir temel sıra numarası ayarlamakla aynı olduğunu unutmayın, ancak günlüğe hiçbir yeniden başlatma kaydı yazılmamıştır.