LogRecordSequence.BeginReserveAndAppend メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
非同期の予約および追加操作を開始します。
オーバーロード
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
が、このシーケンスの基本シーケンス番号と最後のシーケンス番号との間にありません。
レコード シーケンスが読み取り専用アクセスで開かれているため、操作を実行できません。
シーケンスが破棄された後にメソッドが呼び出されました。
プログラムの実行を継続する十分なメモリがありません。
レコード シーケンスがいっぱいです。
指定のログ シーケンスへのアクセスは、オペレーティング システムにより拒否されました。
data
に対応する十分なサイズの予約が reservations
に見つかりません。
注釈
追加処理が完了しておりリソースを適切に解放できることを確認するために、このメソッドから返された IAsyncResult を EndReserveAndAppend メソッドに渡すことをお勧めします。 非同期追加中にエラーが発生した場合、このメソッドから返される 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 エラーが発生しました。
レコード シーケンスは、新しいレコードの格納または予約のための十分な空き領域を作成できませんでした。
シーケンスが破棄された後にメソッドが呼び出されました。
注釈
追加処理が完了しておりリソースを適切に解放できることを確認するために、このメソッドから返された IAsyncResult を EndReserveAndAppend メソッドに渡すことをお勧めします。 非同期追加中にエラーが発生した場合、このメソッドから返される EndReserveAndAppend を使用して IAsyncResult メソッドを呼び出すまで、例外はスローされません。
data
パラメーターに格納されたデータは、レコードとして追加するために単一バイトの配列に連結されます。 ただし、レコードの読み取り時にデータを分割して配列セグメントに戻す準備は実施されません。
指定の予約情報は、レコード追加操作を含む分割不可能な操作内で、提供された予約コレクションに追加されます。 追加が失敗した場合、領域は予約されません。
このメソッドは通常、レコードの書き込みが終わる前に完了できます。 レコードが書き込まれたことを確認するために、ForceFlush パラメーターを使用して recordAppendOptions
フラグを指定するか、Flush メソッドを呼び出します。
レコード シーケンスが破棄されている場合、または無効な引数を渡した場合、この操作内で例外が直ちにスローされます。 I/O 要求時にディスク障害が発生した場合など、非同期追加要求中にエラーが発生した場合、EndReserveAndAppend メソッドが呼び出されたときに例外がスローされます。
適用対象
.NET