次の方法で共有


LogRecordSequence.BeginReserveAndAppend メソッド

定義

非同期の予約および追加操作を開始します。

オーバーロード

BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

非同期の予約および追加操作を開始します。 このメソッドは継承できません。

BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

非同期の予約および追加操作を開始します。 このメソッドは継承できません。

BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

非同期の予約および追加操作を開始します。 このメソッドは継承できません。

public:
 virtual IAsyncResult ^ BeginReserveAndAppend(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, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReserveAndAppend (ArraySegment<byte> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservationCollection, long[] reservations, AsyncCallback callback, object state);
abstract member BeginReserveAndAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
override this.BeginReserveAndAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
Public Function BeginReserveAndAppend (data As ArraySegment(Of Byte), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservationCollection As ReservationCollection, reservations As Long(), callback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

data
ArraySegment<Byte>

レコードとして連結および追加されるバイト配列セグメントのリスト。

nextUndoRecord
SequenceNumber

ユーザー指定の順序で次のレコードのシーケンス番号。

previousRecord
SequenceNumber

以前の順序で次のレコードのシーケンス番号。

recordAppendOptions
RecordAppendOptions

データの書き込み方法を指定する RecordAppendOptions の有効な値。

reservationCollection
ReservationCollection

予約を作成する予約コレクション。

reservations
Int64[]

作成する予約のバイト数。

callback
AsyncCallback

追加の完了時に呼び出されるオプションの非同期コールバック。

state
Object

この特定の非同期追加要求を他の要求と区別するために使用するユーザー指定のオブジェクト。

戻り値

非同期の操作を表す IAsyncResult。まだ保留状態の場合もあります。

実装

例外

このシーケンスの userRecord または previousRecord が有効ではありません。

- または -

data が最大レコード サイズより大きいため、追加できません。

- または -

reservations が、このレコード シーケンスによって作成されていません。

1 つ以上の引数が null です。

userRecord または previousRecord が、このシーケンスの基本シーケンス番号と最後のシーケンス番号との間にありません。

予期しない I/O 例外のため、要求は実行されませんでした。

- または -

I/O デバイス エラーのため、要求は実行されませんでした。

レコード シーケンスが読み取り専用アクセスで開かれているため、操作を実行できません。

シーケンスが破棄された後にメソッドが呼び出されました。

プログラムの実行を継続する十分なメモリがありません。

レコード シーケンスがいっぱいです。

指定のログ シーケンスへのアクセスは、オペレーティング システムにより拒否されました。

data に対応する十分なサイズの予約が reservations に見つかりません。

注釈

追加処理が完了しておりリソースを適切に解放できることを確認するために、このメソッドから返された IAsyncResultEndReserveAndAppend メソッドに渡すことをお勧めします。 非同期追加中にエラーが発生した場合、このメソッドから返される EndReserveAndAppend を使用して IAsyncResult メソッドを呼び出すまで、例外はスローされません。

data パラメーターに格納されたデータは、レコードとして追加するために単一バイトの配列に連結されます。 ただし、レコードの読み取り時にデータを分割して配列セグメントに戻す準備は実施されません。

指定の予約情報は、レコード追加操作を含む分割不可能な操作内で、提供された予約コレクションに追加されます。 追加が失敗した場合、領域は予約されません。

このメソッドは通常、レコードの書き込みが終わる前に完了できます。 レコードが書き込まれたことを確認するために、ForceFlush パラメーターを使用して recordAppendOptions フラグを指定するか、Flush メソッドを呼び出します。

レコード シーケンスが破棄されている場合、または無効な引数を渡した場合、この操作内で例外が直ちにスローされます。 I/O 要求時にディスク障害が発生した場合など、非同期追加要求中にエラーが発生した場合、EndReserveAndAppend メソッドが呼び出されたときに例外がスローされます。

適用対象

BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

非同期の予約および追加操作を開始します。 このメソッドは継承できません。

public:
 virtual IAsyncResult ^ BeginReserveAndAppend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber userRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservationCollection, cli::array <long> ^ reservations, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReserveAndAppend (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber userRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservationCollection, long[] reservations, AsyncCallback callback, object state);
abstract member BeginReserveAndAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
override this.BeginReserveAndAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
Public Function BeginReserveAndAppend (data As IList(Of ArraySegment(Of Byte)), userRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservationCollection As ReservationCollection, reservations As Long(), callback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

data
IList<ArraySegment<Byte>>

レコードとして連結および追加されるバイト配列セグメントのリスト。

userRecord
SequenceNumber

ユーザー指定の順序で次のレコードのシーケンス番号。

previousRecord
SequenceNumber

以前の順序で次のレコードのシーケンス番号。

recordAppendOptions
RecordAppendOptions

データの書き込み方法を指定する RecordAppendOptions の有効な値。

reservationCollection
ReservationCollection

予約を作成する予約コレクション。

reservations
Int64[]

作成する予約のバイト数。

callback
AsyncCallback

追加の完了時に呼び出されるオプションの非同期コールバック。

state
Object

この特定の非同期追加要求を他の要求と区別するために使用するユーザー指定のオブジェクト。

戻り値

非同期の操作を表す IAsyncResult。まだ保留状態の場合もあります。

実装

例外

1 つ以上の引数が無効です。

レコードの追加時に I/O エラーが発生しました。

レコード シーケンスは、新しいレコードの格納または予約のための十分な空き領域を作成できませんでした。

シーケンスが破棄された後にメソッドが呼び出されました。

注釈

追加処理が完了しておりリソースを適切に解放できることを確認するために、このメソッドから返された IAsyncResultEndReserveAndAppend メソッドに渡すことをお勧めします。 非同期追加中にエラーが発生した場合、このメソッドから返される EndReserveAndAppend を使用して IAsyncResult メソッドを呼び出すまで、例外はスローされません。

data パラメーターに格納されたデータは、レコードとして追加するために単一バイトの配列に連結されます。 ただし、レコードの読み取り時にデータを分割して配列セグメントに戻す準備は実施されません。

指定の予約情報は、レコード追加操作を含む分割不可能な操作内で、提供された予約コレクションに追加されます。 追加が失敗した場合、領域は予約されません。

このメソッドは通常、レコードの書き込みが終わる前に完了できます。 レコードが書き込まれたことを確認するために、ForceFlush パラメーターを使用して recordAppendOptions フラグを指定するか、Flush メソッドを呼び出します。

レコード シーケンスが破棄されている場合、または無効な引数を渡した場合、この操作内で例外が直ちにスローされます。 I/O 要求時にディスク障害が発生した場合など、非同期追加要求中にエラーが発生した場合、EndReserveAndAppend メソッドが呼び出されたときに例外がスローされます。

適用対象