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