LogStore クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ログ構造化ストレージを表します。
public ref class LogStore sealed : IDisposable
public sealed class LogStore : IDisposable
type LogStore = class
interface IDisposable
Public NotInheritable Class LogStore
Implements IDisposable
- 継承
-
LogStore
- 実装
例
次の例では、LogStore を XML ドキュメントにアーカイブする方法を示します。
class LogBackup
{
static void ArchiveToXML(LogStore logStore, string fileName)
{
LogArchiveSnapshot snapshot = logStore.CreateLogArchiveSnapshot();
XmlTextWriter writer = new XmlTextWriter(fileName, Encoding.ASCII);
writer.WriteStartElement("logArchive");
foreach(FileRegion region in snapshot.ArchiveRegions)
{
writer.WriteStartElement("fileRegion");
writer.WriteElementString("path", region.Path);
writer.WriteElementString("length", region.FileLength.ToString());
writer.WriteElementString("offset", region.Offset.ToString());
using(Stream dataStream = region.GetStream())
{
byte[] data = new byte[dataStream.Length];
dataStream.Read(data, 0, data.Length);
writer.WriteElementString("data", Convert.ToBase64String(data));
}
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.Close();
logStore.SetArchiveTail(snapshot.LastSequenceNumber);
}
static void RestoreFromXML(string fileName)
{
using(XmlTextReader reader = new XmlTextReader(fileName))
{
reader.ReadStartElement("logArchive");
while(reader.IsStartElement())
{
string path = reader.ReadElementString("path");
long length = Int64.Parse(reader.ReadElementString("length"));
long offset = Int64.Parse(reader.ReadElementString("offset"));
string dataString = reader.ReadElementString("data");
byte[] data = Convert.FromBase64String(dataString);
FileStream fileStream;
using(fileStream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write))
{
fileStream.SetLength(length);
fileStream.Position = offset; fileStream.Write(data, 0, data.Length);
}
}
reader.ReadEndElement();
}
}
}
Friend Class LogBackup
Private Shared Sub ArchiveToXML(ByVal logStore As LogStore, ByVal fileName As String)
Dim snapshot As LogArchiveSnapshot = logStore.CreateLogArchiveSnapshot()
Dim writer As New XmlTextWriter(fileName, Encoding.ASCII)
writer.WriteStartElement("logArchive")
For Each region As FileRegion In snapshot.ArchiveRegions
writer.WriteStartElement("fileRegion")
writer.WriteElementString("path", region.Path)
writer.WriteElementString("length", region.FileLength.ToString())
writer.WriteElementString("offset", region.Offset.ToString())
Using dataStream As Stream = region.GetStream()
Dim data(dataStream.Length - 1) As Byte
dataStream.Read(data, 0, data.Length)
writer.WriteElementString("data", Convert.ToBase64String(data))
End Using
writer.WriteEndElement()
Next region
writer.WriteEndElement()
writer.Close()
logStore.SetArchiveTail(snapshot.LastSequenceNumber)
End Sub
Private Shared Sub RestoreFromXML(ByVal fileName As String)
Using reader As New XmlTextReader(fileName)
reader.ReadStartElement("logArchive")
Do While reader.IsStartElement()
Dim path = reader.ReadElementString("path")
Dim length = Int64.Parse(reader.ReadElementString("length"))
Dim offset = Int64.Parse(reader.ReadElementString("offset"))
Dim dataString = reader.ReadElementString("data")
Dim data() = Convert.FromBase64String(dataString)
Dim fileStream As FileStream
fileStream = New FileStream(path, FileMode.OpenOrCreate, FileAccess.Write)
Using fileStream
fileStream.SetLength(length)
fileStream.Position = offset
fileStream.Write(data, 0, data.Length)
End Using
Loop
reader.ReadEndElement()
End Using
End Sub
End Class
注釈
LogRecordSequence クラスは、Common Log File System (CLFS) ログ上でレコード シーケンス インターフェイスの実装を提供します。 CLFS ログ ファイルを直接操作および管理するためのインターフェイスを提供する LogStore クラスと共に動作します。 ログ ストアは、一連のディスク エクステントで使用される追加専用ストレージです。 LogStore クラスはこのストレージを表し、コンテナーの追加および削除、ポリシーの追加、アーカイブの作成を行うメソッドを提供します。 記憶域の読み書き用のメソッドは提供しません。これらのメソッドは、LogRecordSequence クラスで提供されます。
LogStore クラスと LogRecordSequence クラスの関係は、ディスク ファイルと FileStream オブジェクトの関係に似ています。 ディスク ファイルは記憶域を提供し、長さや最終アクセス日時などの属性を持つのに対して、FileStream オブジェクトはファイルに対する読み書きで使用できるファイルに関するビューを提供します。 同様に、LogStore クラスはポリシーやディスク エクステントのコレクションなどの属性を持つのに対して、LogRecordSequence クラスはデータを読み書きするためのレコード指向の機構を提供します。
FileRecordSequence クラスにより表されるファイル レコード シーケンスとは異なり、LogStore インスタンスは LogExtent インスタンスにより表されるディスク エクステントのコレクションにデータを保存します。 指定の LogStore インスタンス内のエクステントはすべて、均一のサイズを持ちます。また、エクステントの増加分について、LogStore インスタンスに対して領域の追加と削除が行われます。 ログ エクステントを追加および削除するには、Add プロパティで返される Remove オブジェクトの LogExtentCollection メソッドおよび Extents メソッドを使用します。
LogStore インスタンスには、ポリシーを関連付けることができます。 これらのポリシーは、LogPolicy プロパティで返される Policy インスタンスで表されます。 ポリシーは、エクステントの最大数と最小サイズなど、ログで準拠を試みる規則と、一定条件下での LogStore の拡大および縮小の手順を決定します。 また、LogStore インスタンスをアーカイブ可能にするかどうかを指定することもできます。 ポリシーはログごとに設定され、揮発性を有します。つまり、ログへの各ハンドルを閉じると、ポリシーは存在しなくなります。
コンストラクター
LogStore(SafeFileHandle) |
ハンドルを指定して LogStore クラスの新しいインスタンスを初期化します。 |
LogStore(String, FileMode) |
パスとモードを指定して、LogStore クラスの新しいインスタンスを初期化します。 |
LogStore(String, FileMode, FileAccess) |
パス、モード、およびアクセスを指定して、LogStore クラスの新しいインスタンスを初期化します。 |
LogStore(String, FileMode, FileAccess, FileShare) |
LogStore クラスの新しいインスタンスを初期化します。 |
LogStore(String, FileMode, FileAccess, FileShare, FileSecurity) |
LogStore クラスの新しいインスタンスを初期化します。 |
プロパティ
Archivable |
この LogStore インスタンスがアーカイブ可能であるかどうかを示す値を取得します。 |
BaseSequenceNumber |
この LogStore インスタンス内の有効なレコードに対応する下限のシーケンス番号を取得します。 |
Extents |
このログ ストアのデータを格納しているログ エクステントのコレクションを取得します。 |
FreeBytes |
ログ ストアで使用可能なバイト数を取得します。 |
Handle |
現在の LogStore インスタンスによってカプセル化されるログ ファイルのオペレーティング システム ファイル ハンドルを取得します。 |
LastSequenceNumber |
派生クラスでオーバーライドされると、ログ ストアに追加される次のレコードのシーケンス番号を取得します。 |
Length |
ログ ストアのサイズをバイト単位で取得します。 |
Policy |
このログ ストアに関連付けられたポリシーを取得します。 |
StreamCount |
このログ ストアのログ ストリームの数を取得します。 |
メソッド
CreateLogArchiveSnapshot() |
バックアップを作成するために、ログ ストア状態のスナップショットを取得します。 |
CreateLogArchiveSnapshot(SequenceNumber, SequenceNumber) |
バックアップを作成するために、指定されたシーケンス番号範囲のログ ストア状態のスナップショットを取得します。 |
Delete(String) |
ログ ストアを削除します。 |
Dispose() |
LogStore によって使用されているすべてのリソースを解放します。 |
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
SetArchiveTail(SequenceNumber) |
アーカイブ末尾のシーケンス番号を設定します。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
適用対象
.NET