Bagikan melalui


IRecordSequence.ReserveAndAppend Metode

Definisi

Ketika ditimpa di kelas turunan, secara otomatis membuat satu reservasi dan menambahkan catatan ke urutan.

Overload

ReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])

Ketika ditimpa di kelas turunan, secara otomatis membuat satu reservasi dan menambahkan catatan ke urutan.

ReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])

Ketika ditimpa di kelas turunan, secara otomatis membuat satu reservasi dan menambahkan catatan ke urutan.

ReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])

Ketika ditimpa di kelas turunan, secara otomatis membuat satu reservasi dan menambahkan catatan ke urutan.

public:
 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
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

Parameter

data
ArraySegment<Byte>

Daftar segmen array byte yang akan digabungkan dan ditambahkan sebagai rekaman.

nextUndoRecord
SequenceNumber

Nomor urut rekaman berikutnya dalam urutan yang ditentukan pengguna.

previousRecord
SequenceNumber

Nomor urut rekaman berikutnya dalam Urutan sebelumnya.

recordAppendOptions
RecordAppendOptions

Nilai RecordAppendOptions valid yang menentukan bagaimana data harus ditulis.

reservationCollection
ReservationCollection

yang ReservationCollection berisi koleksi untuk melakukan reservasi.

reservations
Int64[]

Reservasi yang harus dibuat, dalam byte.

Mengembalikan

Nomor urut rekaman log yang ditambahkan.

Pengecualian

Satu atau beberapa argumen tidak valid.

Terjadi kesalahan I/O saat menambahkan rekaman.

Urutan rekaman tidak dapat membuat ruang kosong yang cukup untuk memuat rekaman baru, atau untuk membuat reservasi.

Metode ini dipanggil setelah urutan dibuang.

Keterangan

Data yang terkandung dalam data parameter akan digabungkan ke dalam array byte tunggal untuk ditambahkan sebagai rekaman. Namun, tidak ada ketentuan yang dibuat untuk memisahkan data kembali ke segmen array saat rekaman dibaca.

Reservasi yang ditentukan ditambahkan ke koleksi reservasi yang disediakan dalam operasi atomik dengan operasi penambahan rekaman. Jika penampan gagal, tidak ada ruang yang dicadangkan.

Biasanya, metode ini dapat diselesaikan sebelum rekaman ditulis. Untuk memastikan bahwa rekaman telah ditulis, tentukan ForceFlush bendera menggunakan recordAppendOptions parameter , atau panggil Flush metode .

Berlaku untuk

ReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[])

Ketika ditimpa di kelas turunan, secara otomatis membuat satu reservasi dan menambahkan catatan ke urutan.

public:
 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
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

Parameter

data
IList<ArraySegment<Byte>>

Daftar segmen array byte yang akan digabungkan dan ditambahkan sebagai rekaman.

nextUndoRecord
SequenceNumber

Nomor urut rekaman berikutnya dalam urutan yang ditentukan pengguna.

previousRecord
SequenceNumber

Nomor urut rekaman berikutnya dalam Urutan sebelumnya.

recordAppendOptions
RecordAppendOptions

Nilai RecordAppendOptions valid yang menentukan bagaimana data harus ditulis.

reservationCollection
ReservationCollection

Pengumpulan reservasi untuk melakukan reservasi.

reservations
Int64[]

Reservasi yang harus dibuat, dalam byte.

Mengembalikan

Nomor urut rekaman log yang ditambahkan.

Pengecualian

Satu atau beberapa argumen tidak valid.

Terjadi kesalahan I/O saat menambahkan rekaman.

Urutan rekaman tidak dapat membuat ruang kosong yang cukup untuk memuat rekaman baru, atau untuk membuat reservasi.

Metode ini dipanggil setelah urutan dibuang.

Keterangan

Data yang terkandung dalam data parameter akan digabungkan ke dalam array byte tunggal untuk ditambahkan sebagai rekaman. Namun, tidak ada ketentuan yang dibuat untuk memisahkan data kembali ke segmen array saat rekaman dibaca.

Reservasi yang ditentukan ditambahkan ke koleksi reservasi yang disediakan dalam operasi atomik dengan operasi penambahan rekaman. Jika penampan gagal, tidak ada ruang yang dicadangkan.

Biasanya, metode ini dapat diselesaikan sebelum rekaman ditulis. Untuk memastikan bahwa rekaman telah ditulis, tentukan ForceFlush bendera menggunakan recordAppendOptions parameter , atau panggil Flush metode .

Berlaku untuk