Aracılığıyla paylaş


LogRecordSequence.AdvanceBaseSequenceNumber(SequenceNumber) Yöntem

Tanım

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.

Şunlara uygulanır