FileRecordSequence.ReserveAndAppend 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
자동으로 단일 예약을 만들고 시퀀스에 레코드를 추가합니다.
오버로드
ReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[]) |
자동으로 단일 예약을 만들고 시퀀스에 레코드를 추가합니다. 이 메서드는 상속될 수 없습니다. |
ReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[]) |
자동으로 단일 예약을 만들고 시퀀스에 레코드를 추가합니다. 이 메서드는 상속될 수 없습니다. |
ReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])
자동으로 단일 예약을 만들고 시퀀스에 레코드를 추가합니다. 이 메서드는 상속될 수 없습니다.
public:
virtual System::IO::Log::SequenceNumber ReserveAndAppend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservationCollection, ... cli::array <long> ^ reservations);
public System.IO.Log.SequenceNumber ReserveAndAppend (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservationCollection, params long[] reservations);
abstract member ReserveAndAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] -> System.IO.Log.SequenceNumber
override this.ReserveAndAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] -> System.IO.Log.SequenceNumber
Public Function ReserveAndAppend (data As IList(Of ArraySegment(Of Byte)), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservationCollection As ReservationCollection, ParamArray reservations As Long()) As SequenceNumber
매개 변수
- data
- IList<ArraySegment<Byte>>
연결하여 레코드로 추가할 바이트 배열 세그먼트의 목록입니다.
- nextUndoRecord
- SequenceNumber
사용자가 지정한 순서에서 다음 레코드의 시퀀스 번호입니다.
- previousRecord
- SequenceNumber
이전 순서에서 다음 레코드의 시퀀스 번호입니다.
- recordAppendOptions
- RecordAppendOptions
데이터를 쓰는 방법을 지정하는 RecordAppendOptions의 유효한 값입니다.
- reservationCollection
- ReservationCollection
예약을 만들 예약 컬렉션입니다.
- reservations
- Int64[]
만들 예약(바이트)입니다.
반환
추가된 로그 레코드의 시퀀스 번호입니다.
구현
예외
하나 이상의 인수가 null
인 경우
하나 이상의 인수가 범위를 벗어난 경우
이 레코드 시퀀스를 통해 reservations
를 만들 수 없는 경우
읽기 전용 액세스 권한으로 레코드 시퀀스를 열었으므로 작업을 수행할 수 없습니다.
예기치 못한 I/O 예외 때문에 요청을 수행할 수 없는 경우
시퀀스가 삭제된 후 메서드가 호출된 경우
메모리가 부족하여 프로그램을 계속 실행할 수 없는 경우
레코드 시퀀스가 꽉 찼습니다.
설명
매개 변수에 data
포함된 데이터는 레코드로 추가하기 위해 단일 바이트 배열에 연결됩니다. 그러나 레코드를 읽을 때 데이터를 배열 세그먼트로 다시 분할하기 위한 프로비저닝은 이루어지지 않습니다.
지정된 예약은 레코드 추가 작업을 사용하여 원자성 작업에서 제공된 예약 컬렉션에 추가됩니다. 추가가 실패하면 공백이 예약되지 않습니다.
일반적으로 이 메서드는 레코드가 작성되기 전에 완료할 수 있습니다. 레코드가 작성되었는지 확인하려면 매개 변수를 사용하여 플래그를 ForceFlushrecordAppendOptions
지정하거나 메서드를 호출합니다 Flush .
적용 대상
ReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])
자동으로 단일 예약을 만들고 시퀀스에 레코드를 추가합니다. 이 메서드는 상속될 수 없습니다.
public:
virtual System::IO::Log::SequenceNumber ReserveAndAppend(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservationCollection, ... cli::array <long> ^ reservations);
public System.IO.Log.SequenceNumber ReserveAndAppend (ArraySegment<byte> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservationCollection, params long[] reservations);
abstract member ReserveAndAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] -> System.IO.Log.SequenceNumber
override this.ReserveAndAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] -> System.IO.Log.SequenceNumber
Public Function ReserveAndAppend (data As ArraySegment(Of Byte), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservationCollection As ReservationCollection, ParamArray reservations As Long()) As SequenceNumber
매개 변수
- data
- ArraySegment<Byte>
연결하여 레코드로 추가할 바이트 배열 세그먼트의 목록입니다.
- nextUndoRecord
- SequenceNumber
사용자가 지정한 순서에서 다음 레코드의 시퀀스 번호입니다.
- previousRecord
- SequenceNumber
이전 순서에서 다음 레코드의 시퀀스 번호입니다.
- recordAppendOptions
- RecordAppendOptions
데이터를 쓰는 방법을 지정하는 RecordAppendOptions의 유효한 값입니다.
- reservationCollection
- ReservationCollection
예약을 만들 컬렉션이 포함된 ReservationCollection입니다.
- reservations
- Int64[]
만들 예약(바이트)입니다.
반환
추가된 로그 레코드의 시퀀스 번호입니다.
구현
예외
하나 이상의 인수가 null
인 경우
하나 이상의 인수가 범위를 벗어난 경우
이 레코드 시퀀스를 통해 reservations
를 만들 수 없는 경우
읽기 전용 액세스 권한으로 레코드 시퀀스를 열었으므로 작업을 수행할 수 없습니다.
예기치 못한 I/O 예외 때문에 요청을 수행할 수 없는 경우
시퀀스가 삭제된 후 메서드가 호출된 경우
메모리가 부족하여 프로그램을 계속 실행할 수 없는 경우
레코드 시퀀스가 꽉 찼습니다.
설명
매개 변수에 data
포함된 데이터는 레코드로 추가하기 위해 단일 바이트 배열에 연결됩니다. 그러나 레코드를 읽을 때 데이터를 배열 세그먼트로 다시 분할하기 위한 프로비저닝은 이루어지지 않습니다.
지정된 예약은 레코드 추가 작업을 사용하여 원자성 작업에서 제공된 예약 컬렉션에 추가됩니다. 추가가 실패하면 공백이 예약되지 않습니다.
일반적으로 이 메서드는 레코드가 작성되기 전에 완료할 수 있습니다. 레코드가 작성되었는지 확인하려면 매개 변수를 사용하여 플래그를 ForceFlushrecordAppendOptions
지정하거나 메서드를 호출합니다 Flush .
적용 대상
.NET