レプリカ メタデータへのアクセス

Metadata Storage Service は、レプリカ全体を表すメタデータ グループと、同期対象の個々の項目を表すメタデータ グループの 2 つのメタデータ グループを格納します。どちらのメタデータ グループも、ReplicaMetadata (マネージ コードの場合) または IReplicaMetadata (アンマネージ コードの場合) を使用して操作できます。

注意

プロパティの変更は、レプリカ メタデータまたは項目メタデータ オブジェクトのプロパティを設定するだけではメタデータ ストアに保存されません。プロパティの変更を保存するには、SaveReplicaMetadata または SaveItemMetadata (マネージ コードの場合) あるいは IReplicaMetadata::SaveReplicaMetadata または IReplicaMetadata::SaveItemMetadata (アンマネージ コードの場合) を使用します。

レプリカ メタデータ

格納されるレプリカ メタデータには、レプリカ ID、レプリカのティック数、レプリカの現在のナレッジ、およびレプリカの忘れられたナレッジがあります。また、メタデータ ストアは、レプリカに関連付けられているプロバイダーに固有のメタデータを格納するために使用できるカスタム メタデータ フィールドを提供します。このフィールドは、CustomReplicaMetadata プロパティ (マネージ コードの場合) または IReplicaMetadata::SetCustomFieldMetadata メソッド (アンマネージ コードの場合) を使用して設定できます。

項目メタデータ

項目メタデータには、項目のグローバル ID、現在のバージョン、作成バージョン、項目ストアから項目が削除されているかどうかを示す値、およびレプリカ メタデータの初期化時に指定されたカスタム フィールドが含まれます。レプリカ メタデータ オブジェクトは、新しい項目メタデータの作成、項目メタデータの削除、または項目のグローバル ID やカスタム フィールド値に基づいた項目メタデータの検索に使用できるメソッドを提供します。

マネージ コード : 項目メタデータは、ItemMetadata オブジェクトによって表されます。インデックス フィールド値を使用して項目を検索するには、フィールド名と値を FindItemMetadataByIndexedField に渡します。

アンマネージ コード : 項目メタデータは、IItemMetadata オブジェクトによって表されます。インデックス フィールド値を使用して項目を検索するには、IReplicaMetadata::CreateEmptyFieldValue を使用して空の IFieldValue オブジェクトを作成します。IFieldValue オブジェクトに検索する値を設定し、IReplicaMetadata::FindItemMetadataByIndexedFields を呼び出します。

Security noteセキュリティメモ :

ユーザー データを保護するには、項目に削除のマークが付けられたときに、カスタム インデックス フィールドなどのすべてのユーザー データをその項目のメタデータから削除する必要があります。項目に削除のマークが付けられると、Metadata Storage Service はその項目の変更単位情報をすべて自動的に削除します。

キャッシュ

レプリカ メタデータ オブジェクトおよび項目メタデータ オブジェクトは、レプリカまたは項目用のメタデータのメモリ内キャッシュを使用します。キャッシュは、メタデータ オブジェクトの初期化時にディスクから設定され、それ以降更新されることはありません。これは、次のような特定の状況において、メモリ内表現がメタデータ ストア ファイル内のものと異なる場合があることを意味します。

  • 更新がメタデータ オブジェクトに設定され、いずれかの保存メソッドを使用して保存された一方で、ディスクに書き込まれていない場合 (たとえば明示的なトランザクションがコミットされていない場合)。

  • 同じレプリカまたは項目に対して複数のメタデータ オブジェクトが作成されているときに、あるインスタンスで更新とコミットが行われた場合。この場合、変更が加えられていないオブジェクトは最新版ではなくなり、そのメタデータを取得するための呼び出しでは更新前の値が返されます。

参照

リファレンス

IReplicaMetadata インターフェイス
IItemMetadata インターフェイス
IFieldValue インターフェイス
ReplicaMetadata
ItemMetadata

その他のリソース

Sync Framework Metadata Storage Service