Sync Framework Metadata Storage Service のコンポーネント

Metadata Storage Service は、同期メタデータの格納と処理をサポートしています。

Metadata Storage Service の API

Metadata Storage Service の API は、次の要素で構成されています。

CUSTOM_FIELD_DEFINITION 構造体

IItemMetadata2 インターフェイス

CUSTOM_FIELDS_INDEX 構造体

IItemMetadataEnumerator インターフェイス

METASTORE_ISOLATIONLEVEL 列挙体

IMetadataStoreUpgradeCallback インターフェイス

SYNC_METADATA_FIELD_TYPE 列挙体

IProviderMetadataUpgradeCallback インターフェイス

メタデータ ストレージのエラー コード

IReplicaMetadata インターフェイス

IChangeBatchCallback インターフェイス

IReplicaMetadata2 インターフェイス

IChangeUnitMetadata インターフェイス

ISqlSyncMetadataStore インターフェイス

IChangeUnitMetadataEnumerator インターフェイス

ISyncMetadataStore インターフェイス

IFieldValue インターフェイス

ISyncMetadataStore2 インターフェイス

IItemMetadata インターフェイス

ISyncMetadataStoreSerializer インターフェイス

Metadata Storage Service の使用

Metadata Storage Service は、一連のインターフェイスで、ストレージ サービスの作成者は、一連のカスタム クラスを実装して、どの種類のデータ ストアにもメタデータを格納できます。また、Metadata Storage Service では、簡易データベースを使用して同期メタデータをファイル システム内の 1 つのデータベース ファイルに格納するインターフェイスも実装できます。

メタデータの初期化

すべてのメタデータ ストアのメイン インターフェイスは ISyncMetadataStore です。このインターフェイスには、メタデータ ストアを初期化してレプリカを取得したり、データベースのトランザクションを開始または終了したりするためのメソッドが含まれています。ISqlSyncMetadataStore のように、このインターフェイスから継承されるインターフェイスは、メタデータ ストアを作成して開くためのメソッドを提供する場合があります。

ISyncMetadataStore::InitializeReplicaMetadata は、メタデータ ストア内のレプリカ メタデータを初期化します。このメソッドに CUSTOM_FIELD_DEFINITION パラメーターを使用すると、一連のカスタム フィールドを作成できます。これらのフィールドを使用すると、項目の追加メタデータをメタデータ ストアに格納できます。CUSTOM_FIELDS_INDEX パラメーターを使用すると、一連のフィールドをインデックスとして定義できます。インデックスを使用すると、メタデータ ストア内の項目を効率的に見つけることができます。

レプリカのメタデータのカプセル化

IReplicaMetadata インターフェイスは、特定のレプリカのメタデータをすべてカプセル化します。レプリカ メタデータには、IReplicaMetadata::GetKnowledgeIReplicaMetadata::GetReplicaId などのメソッドを使用してアクセスできます。

このインターフェイスの複数のメソッドは、次のような同期プロバイダーのメソッドを実装するときに役立ちます。

  • IReplicaMetadata::GetChangeBatch。このメソッドはほとんどの場合、IKnowledgeSyncProvider::GetChangeBatch メソッドの代わりとして実行できます。

  • IReplicaMetadata::GetItemBatchVersions。このメソッドは IKnowledgeSyncProvider::ProcessChangeBatch メソッドから呼び出して、変更バッチ項目のローカル バージョンを見つけることができます。変更適用元には、これらのローカル バージョンが必要です。

IReplicaMetadata には削除検出サービスも含まれています。プロバイダーは IReplicaMetadata::GetUnreportedItems などのメソッドを使用すると、どの項目が項目ストアから削除され、メタデータ ストアで削除済みマークを付ける必要があるかを検出できます。

項目のメタデータのカプセル化

項目メタデータは、IReplicaMetadata メソッドを使用して、IReplicaMetadata::FindItemMetadataByGlobalIdIReplicaMetadata::FindItemMetadataByIndexedFields などの項目 ID かインデックス付きフィールドで検索するとメタデータ ストアで見つかります。IItemMetadata インターフェイス クラスは、特定の項目のメタデータをすべてカプセル化します。レプリカ メタデータには、IItemMetadata::GetChangeVersionIItemMetadata::GetCreationVersionIItemMetadata::GetGlobalIdIItemMetadata::GetIsDeleted などのメソッドを使用してアクセスできます。また、レプリカ メタデータを初期化したときに定義されたカスタム フィールドにアクセスするためのメソッドも複数含まれています。

エラー コード

Metadata Storage Service では、問題の報告にカスタム エラーを使用します。詳細については、「メタデータ ストレージのエラー コード」を参照してください。

参照

リファレンス

Microsoft.Synchronization.MetadataStorage

その他のリソース

Sync Framework Metadata Storage Service