次の方法で共有


LogRecordSequence.BeginWriteRestartArea メソッド

定義

非同期の再開領域の書き込み操作を開始します。

オーバーロード

BeginWriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

以前にシーケンス内で予約された領域を使用して、非同期の再開領域の書き込み操作を開始します。 このメソッドは継承できません。

BeginWriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

以前にシーケンス内で予約された領域を使用して、非同期の再開領域の書き込み操作を開始します。 このメソッドは継承できません。

BeginWriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

以前にシーケンス内で予約された領域を使用して、非同期の再開領域の書き込み操作を開始します。 このメソッドは継承できません。

public:
 virtual IAsyncResult ^ BeginWriteRestartArea(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber newBaseSeqNum, System::IO::Log::ReservationCollection ^ reservationCollection, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginWriteRestartArea (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber newBaseSeqNum, System.IO.Log.ReservationCollection reservationCollection, AsyncCallback callback, object state);
abstract member BeginWriteRestartArea : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
override this.BeginWriteRestartArea : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
Public Function BeginWriteRestartArea (data As IList(Of ArraySegment(Of Byte)), newBaseSeqNum As SequenceNumber, reservationCollection As ReservationCollection, callback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

data
IList<ArraySegment<Byte>>

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

newBaseSeqNum
SequenceNumber

新しい基本シーケンス番号。 指定するシーケンス番号は、現在の基本シーケンス番号以上であることが必要です。

reservationCollection
ReservationCollection

この再開領域で使用する予約情報を格納する ReservationCollection

callback
AsyncCallback

再開領域の書き込みの完了時に呼び出されるオプションの非同期コールバック。

state
Object

この特定の再開領域非同期書き込み要求を他の要求と区別するために使用するユーザー指定のオブジェクト。

戻り値

非同期の再開領域の書き込み処理を表す IAsyncResult。まだ保留状態の場合もあります。

実装

例外

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

- または -

指定されたログ列挙体の開始シーケンス番号が無効です。

- または -

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

- または -

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

1 つ以上のパラメーターが null です。

新しいアーカイブ末尾または既存のアーカイブ末尾、あるいはアーカイブ ログの基本が無効です。

- または -

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

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

- または -

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

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

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

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

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

注釈

再開領域の書き込み処理が完了しておりリソースを適切に解放できることを確認するために、このメソッドから返された IAsyncResultEndWriteRestartArea メソッドに渡す必要があります。 非同期の再開領域の書き込み処理中にエラーが発生した場合、このメソッドから返される EndWriteRestartArea を使用して IAsyncResult メソッドを呼び出すまで、例外はスローされません。

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

この操作が正しく完了すると、基本シーケンス番号が更新されます。 新しい基本シーケンス番号未満の番号を持つすべてのログ レコードは、アクセスできません。

ReservationCollection を指定すると、コレクションに格納されていた予約情報で以前に予約された領域が、書き込まれた再開領域により消費されます。 このメソッドが成功すると、データを格納できる最も小さな予約が消費され、その予約がコレクションから削除されます。

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

適用対象

BeginWriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

以前にシーケンス内で予約された領域を使用して、非同期の再開領域の書き込み操作を開始します。 このメソッドは継承できません。

public:
 virtual IAsyncResult ^ BeginWriteRestartArea(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber newBaseSeqNum, System::IO::Log::ReservationCollection ^ reservation, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginWriteRestartArea (ArraySegment<byte> data, System.IO.Log.SequenceNumber newBaseSeqNum, System.IO.Log.ReservationCollection reservation, AsyncCallback callback, object state);
abstract member BeginWriteRestartArea : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
override this.BeginWriteRestartArea : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
Public Function BeginWriteRestartArea (data As ArraySegment(Of Byte), newBaseSeqNum As SequenceNumber, reservation As ReservationCollection, callback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

data
ArraySegment<Byte>

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

newBaseSeqNum
SequenceNumber

新しい基本シーケンス番号。 指定するシーケンス番号は、現在の基本シーケンス番号以上であることが必要です。

reservation
ReservationCollection

この再開領域で使用する予約情報を格納する ReservationCollection

callback
AsyncCallback

再開領域の書き込みの完了時に呼び出されるオプションの非同期コールバック。

state
Object

この特定の再開領域非同期書き込み要求を他の要求と区別するために使用するユーザー指定のオブジェクト。

戻り値

非同期の再開領域の書き込み処理を表す IAsyncResult。まだ保留状態の場合もあります。

実装

例外

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

- または -

指定されたログ列挙体の開始シーケンス番号が無効です。

- または -

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

- または -

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

1 つ以上のパラメーターが null です。

新しいアーカイブ末尾または既存のアーカイブ末尾、あるいはアーカイブ ログの基本が無効です。

- または -

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

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

- または -

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

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

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

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

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

注釈

再開領域の書き込み処理が完了しておりリソースを適切に解放できることを確認するために、このメソッドから返された IAsyncResultEndWriteRestartArea メソッドに渡す必要があります。 非同期の再開領域の書き込み処理中にエラーが発生した場合、このメソッドから返される EndWriteRestartArea を使用して IAsyncResult メソッドを呼び出すまで、例外はスローされません。

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

この操作が正しく完了すると、基本シーケンス番号が更新されます。 新しい基本シーケンス番号未満の番号を持つすべてのログ レコードは、アクセスできません。

ReservationCollection を指定すると、コレクションに格納されていた予約情報で以前に予約された領域が、書き込まれた再開領域により消費されます。 このメソッドが成功すると、データを格納できる最も小さな予約が消費され、その予約がコレクションから削除されます。

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

適用対象