LogRecordSequence.TailPinned 이벤트
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
시퀀스의 테일을 이동해야 함을 나타냅니다.
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)
이벤트 유형
구현
예제
이 예제에서는 이벤트를 사용하는 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);
}
설명
레코드 시퀀스의 공간이 부족하면 이 이벤트를 실행할 수 있습니다. 이 이벤트가 발생하면 공간을 확보하기 위해 시퀀스의 테일(즉, 기준 시퀀스 번호)이 앞으로 이동합니다.
레코드 시퀀스가 어떤 이유로든 공간을 확보해야 한다고 결정할 때 언제든지 이벤트가 발생할 수 있습니다. 예를 들어 CLFS 정책 엔진은 동일한 로그 파일을 공유하는 두 로그 클라이언트의 꼬리가 너무 멀리 떨어져 있다고 판단할 때 이벤트를 실행하도록 결정할 수 있습니다. 공간 확보는 다시 시작 영역을 작성하거나 로그를 잘리고 메서드를 사용하여 AdvanceBaseSequenceNumber 공간을 지우는 방법으로 수행할 수 있습니다. 예제 섹션의 코드 샘플은 두 번째 방법을 보여 줍니다.
이벤트 외부에서 TailPinned 메서드를 WriteRestartArea 호출하여 공간을 확보할 수도 있습니다. 다시 시작 영역은 다른 로그 처리 시스템의 검사점과 비슷합니다. 이 메서드를 호출하면 애플리케이션에서는 재시작 영역 전의 모든 이전 레코드가 완전히 완료되었으며 이후 레코드 추가에 사용할 수 있다고 간주합니다. 다른 레코드와 마찬가지로 이 메서드에서 작성한 레코드를 사용하려면 로그의 실제 사용 가능한 공간이 필요합니다.
적용 대상
.NET