LogRecordSequence.Append メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ログ レコードを IRecordSequence に書き込みます。
オーバーロード
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
以前にシーケンスに予約された領域を使用して、IRecordSequence にログ レコードを追加します。 このメソッドは継承できません。 |
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection) |
以前にシーケンスに予約された領域を使用して、IRecordSequence にログ レコードを追加します。 このメソッドは継承できません。 |
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
ログ レコードを LogRecordSequence に書き込みます。 このメソッドは継承できません。 |
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions) |
IRecordSequence にログ レコードを追加します。 このメソッドは継承できません。 |
例
Append メンバーの使用方法を次の例に示します。
// Append records. Appending three records.
public void AppendRecords()
{
Console.WriteLine("Appending Log Records...");
SequenceNumber previous = SequenceNumber.Invalid;
previous = sequence.Append(CreateData("Hello World!"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush);
previous = sequence.Append(CreateData("This is my first Logging App"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush);
previous = sequence.Append(CreateData("Using LogRecordSequence..."), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush);
Console.WriteLine("Done...");
}
' Append records. Appending three records.
Public Sub AppendRecords()
Console.WriteLine("Appending Log Records...")
Dim previous As SequenceNumber = SequenceNumber.Invalid
previous = sequence.Append(CreateData("Hello World!"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
previous = sequence.Append(CreateData("This is my first Logging App"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
previous = sequence.Append(CreateData("Using LogRecordSequence..."), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
Console.WriteLine("Done...")
End Sub
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)
以前にシーケンスに予約された領域を使用して、IRecordSequence にログ レコードを追加します。 このメソッドは継承できません。
public:
virtual System::IO::Log::SequenceNumber Append(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservations);
public System.IO.Log.SequenceNumber Append (ArraySegment<byte> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservations);
abstract member Append : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection -> System.IO.Log.SequenceNumber
override this.Append : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection -> System.IO.Log.SequenceNumber
Public Function Append (data As ArraySegment(Of Byte), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservations As ReservationCollection) As SequenceNumber
パラメーター
- data
- ArraySegment<Byte>
レコードとして連結および追加されるバイト配列セグメントのリスト。
- nextUndoRecord
- SequenceNumber
ユーザー指定の順序で次のレコードのシーケンス番号。
- previousRecord
- SequenceNumber
以前の順序で次のレコードのシーケンス番号。
- recordAppendOptions
- RecordAppendOptions
データの書き込み方法を指定する RecordAppendOptions の有効な値。
- reservations
- ReservationCollection
このレコードで使用する予約情報を格納する ReservationCollection。
戻り値
追加されたログ レコードのシーケンス番号。
実装
例外
このシーケンスの userRecord
または previousRecord
が有効ではありません。
- または -
data
が最大レコード サイズより大きいため、追加できません。
- または -
reservations
が、このレコード シーケンスによって作成されていません。
1 つ以上の引数が null
です。
userRecord
または previousRecord
が、このシーケンスの基本シーケンス番号と最後のシーケンス番号との間にありません。
レコード シーケンスが読み取り専用アクセスで開かれているため、操作を実行できません。
シーケンスが破棄された後にメソッドが呼び出されました。
プログラムの実行を継続する十分なメモリがありません。
レコード シーケンスがいっぱいです。
指定のログ シーケンスへのアクセスは、オペレーティング システムにより拒否されました。
data
に対応する十分なサイズの予約が reservations
に見つかりません。
注釈
data
パラメーターに格納されたデータは、レコードとして追加するために単一バイトの配列に連結されます。 ただし、レコードの読み取り時にデータを分割して配列セグメントに戻す準備は実施されません。
追加されたレコードは、reservations
パラメーターにより指定された予約を使用して以前に予約された領域を消費します。 この追加処理が成功すると、データを格納できる最も小さな予約領域が消費され、その予約領域がコレクションから削除されます。
このメソッドは通常、レコードの書き込みが終わる前に完了します。 レコードが書き込まれたことを確認するために、ForceFlush パラメーターを使用して recordAppendOptions
フラグを指定するか、Flush メソッドを呼び出します。
適用対象
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection)
以前にシーケンスに予約された領域を使用して、IRecordSequence にログ レコードを追加します。 このメソッドは継承できません。
public:
virtual System::IO::Log::SequenceNumber Append(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 ^ reservations);
public System.IO.Log.SequenceNumber Append (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 reservations);
abstract member Append : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection -> System.IO.Log.SequenceNumber
override this.Append : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection -> System.IO.Log.SequenceNumber
Public Function Append (data As IList(Of ArraySegment(Of Byte)), userRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservations As ReservationCollection) As SequenceNumber
パラメーター
- data
- IList<ArraySegment<Byte>>
レコードとして連結および追加されるバイト配列セグメントのリスト。
- userRecord
- SequenceNumber
ユーザー指定の順序で次のレコードのシーケンス番号。
- previousRecord
- SequenceNumber
以前の順序で次のレコードのシーケンス番号。
- recordAppendOptions
- RecordAppendOptions
データの書き込み方法を指定する RecordAppendOptions の有効な値。
- reservations
- ReservationCollection
このレコードで使用する予約情報を格納する ReservationCollection。
戻り値
追加されたログ レコードのシーケンス番号。
実装
例外
このシーケンスの userRecord
または previousRecord
が有効ではありません。
- または -
data
が最大レコード サイズより大きいため、追加できません。
- または -
reservations
が、このレコード シーケンスによって作成されていません。
1 つ以上の引数が null
です。
userRecord
または previousRecord
が、このシーケンスの基本シーケンス番号と最後のシーケンス番号との間にありません。
レコード シーケンスが読み取り専用アクセスで開かれているため、操作を実行できません。
シーケンスが破棄された後にメソッドが呼び出されました。
プログラムの実行を継続する十分なメモリがありません。
レコード シーケンスがいっぱいです。
指定のログ シーケンスへのアクセスは、オペレーティング システムにより拒否されました。
data
に対応する十分なサイズの予約が reservations
に見つかりません。
注釈
data
パラメーターに格納されたデータは、レコードとして追加するために単一バイトの配列に連結されます。 ただし、レコードの読み取り時にデータを分割して配列セグメントに戻す準備は実施されません。
追加されたレコードは、reservations
パラメーターにより指定された予約を使用して以前に予約された領域を消費します。 この追加処理が成功すると、データを格納できる最も小さな予約領域が消費され、その予約領域がコレクションから削除されます。
このメソッドは通常、レコードの書き込みが終わる前に完了します。 レコードが書き込まれたことを確認するために、ForceFlush パラメーターを使用して recordAppendOptions
フラグを指定するか、Flush メソッドを呼び出します。
適用対象
Append(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions)
ログ レコードを LogRecordSequence に書き込みます。 このメソッドは継承できません。
public:
virtual System::IO::Log::SequenceNumber Append(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions);
public System.IO.Log.SequenceNumber Append (ArraySegment<byte> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions);
abstract member Append : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions -> System.IO.Log.SequenceNumber
override this.Append : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions -> System.IO.Log.SequenceNumber
Public Function Append (data As ArraySegment(Of Byte), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions) As SequenceNumber
パラメーター
- data
- ArraySegment<Byte>
レコードとして連結および追加されるバイト配列セグメントのリスト。
- nextUndoRecord
- SequenceNumber
ユーザー指定の順序で次のレコードのシーケンス番号。
- previousRecord
- SequenceNumber
以前の順序で次のレコードのシーケンス番号。
- recordAppendOptions
- RecordAppendOptions
データの書き込み方法を指定する RecordAppendOptions の有効な値。
戻り値
追加されたログ レコードのシーケンス番号。
実装
例外
このシーケンスの userRecord
または previousRecord
が有効ではありません。
- または -
data
が最大レコード サイズより大きいため、追加できません。
- または -
reservations
が、このレコード シーケンスによって作成されていません。
1 つ以上の引数が null
です。
userRecord
または previousRecord
が、このシーケンスの基本シーケンス番号と最後のシーケンス番号との間にありません。
レコード シーケンスが読み取り専用アクセスで開かれているため、操作を実行できません。
シーケンスが破棄された後にメソッドが呼び出されました。
プログラムの実行を継続する十分なメモリがありません。
レコード シーケンスがいっぱいです。
指定のログ シーケンスへのアクセスは、オペレーティング システムにより拒否されました。
例
次の例は、このメソッドを使用してログ レコードをシーケンスに追加する方法を示しています。
// Start Appending in two streams with interleaving appends.
SequenceNumber previous1 = SequenceNumber.Invalid;
SequenceNumber previous2 = SequenceNumber.Invalid;
Console.WriteLine("Appending interleaving records in stream1 and stream2...");
Console.WriteLine();
// Append two records in stream1.
previous1 = sequence1.Append(
CreateData("MyLogStream1: Hello World!"),
SequenceNumber.Invalid,
SequenceNumber.Invalid,
RecordAppendOptions.ForceFlush);
previous1 = sequence1.Append(
CreateData("MyLogStream1: This is my first Logging App"),
previous1,
previous1,
RecordAppendOptions.ForceFlush);
// Append two records in stream2.
previous2 = sequence2.Append(
CreateData("MyLogStream2: Hello World!"),
SequenceNumber.Invalid,
SequenceNumber.Invalid,
RecordAppendOptions.ForceFlush);
previous2 = sequence2.Append(
CreateData("MyLogStream2: This is my first Logging App"),
previous2,
previous2,
RecordAppendOptions.ForceFlush);
// Append the third record in stream1.
previous1 = sequence1.Append(CreateData(
"MyLogStream1: Using LogRecordSequence..."),
previous1,
previous1,
RecordAppendOptions.ForceFlush);
// Append the third record in stream2.
previous2 = sequence2.Append(
CreateData("MyLogStream2: Using LogRecordSequence..."),
previous2,
previous2,
RecordAppendOptions.ForceFlush);
' Start Appending in two streams with interleaving appends.
Dim previous1 As SequenceNumber = SequenceNumber.Invalid
Dim previous2 As SequenceNumber = SequenceNumber.Invalid
Console.WriteLine("Appending interleaving records in stream1 and stream2...")
Console.WriteLine()
' Append two records in stream1.
previous1 = sequence1.Append(CreateData("MyLogStream1: Hello World!"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
previous1 = sequence1.Append(CreateData("MyLogStream1: This is my first Logging App"), previous1, previous1, RecordAppendOptions.ForceFlush)
' Append two records in stream2.
previous2 = sequence2.Append(CreateData("MyLogStream2: Hello World!"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
previous2 = sequence2.Append(CreateData("MyLogStream2: This is my first Logging App"), previous2, previous2, RecordAppendOptions.ForceFlush)
' Append the third record in stream1.
previous1 = sequence1.Append(CreateData("MyLogStream1: Using LogRecordSequence..."), previous1, previous1, RecordAppendOptions.ForceFlush)
' Append the third record in stream2.
previous2 = sequence2.Append(CreateData("MyLogStream2: Using LogRecordSequence..."), previous2, previous2, RecordAppendOptions.ForceFlush)
注釈
data
パラメーターに格納されたデータは、レコードとして追加するために単一バイトの配列に連結されます。 ただし、レコードの読み取り時にデータを分割して配列セグメントに戻す準備は実施されません。
このメソッドは通常、レコードの書き込みが終わる前に完了します。 レコードが書き込まれたことを確認するために、ForceFlush パラメーターを使用して recordAppendOptions
フラグを指定するか、Flush メソッドを呼び出します。
適用対象
Append(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions)
IRecordSequence にログ レコードを追加します。 このメソッドは継承できません。
public:
virtual System::IO::Log::SequenceNumber Append(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber userRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions);
public System.IO.Log.SequenceNumber Append (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber userRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions);
abstract member Append : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions -> System.IO.Log.SequenceNumber
override this.Append : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions -> System.IO.Log.SequenceNumber
Public Function Append (data As IList(Of ArraySegment(Of Byte)), userRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions) As SequenceNumber
パラメーター
- data
- IList<ArraySegment<Byte>>
レコードとして連結および追加されるバイト配列セグメントのリスト。
- userRecord
- SequenceNumber
ユーザー指定の順序で次のレコードのシーケンス番号。
- previousRecord
- SequenceNumber
以前の順序で次のレコードのシーケンス番号。
- recordAppendOptions
- RecordAppendOptions
データの書き込み方法を指定する RecordAppendOptions の有効な値。
戻り値
追加されたログ レコードのシーケンス番号。
実装
例外
このシーケンスの userRecord
または previousRecord
が有効ではありません。
- または -
data
が最大レコード サイズより大きいため、追加できません。
- または -
reservations
が、このレコード シーケンスによって作成されていません。
1 つ以上の引数が null
です。
userRecord
または previousRecord
が、このシーケンスの基本シーケンス番号と最後のシーケンス番号との間にありません。
レコード シーケンスが読み取り専用アクセスで開かれているため、操作を実行できません。
シーケンスが破棄された後にメソッドが呼び出されました。
プログラムの実行を継続する十分なメモリがありません。
レコード シーケンスがいっぱいです。
指定のログ シーケンスへのアクセスは、オペレーティング システムにより拒否されました。
注釈
data
パラメーターに格納されたデータは、レコードとして追加するために単一バイトの配列に連結されます。 ただし、レコードの読み取り時にデータを分割して配列セグメントに戻す準備は実施されません。
このメソッドは通常、レコードの書き込みが終わる前に完了します。 レコードが書き込まれたことを確認するために、ForceFlush パラメーターを使用して recordAppendOptions
フラグを指定するか、Flush メソッドを呼び出します。
適用対象
.NET