IReplicaMetadata2::SetProviderVersion

このメタデータを処理するプロバイダーのバージョンを設定します。

HRESULT SetProviderVersion(
  ULONG ulProviderVersion);

パラメーター

  • ulProviderVersion
    [in] このメタデータを処理するプロバイダーのバージョンです。

戻り値

  • S_OK

  • E_OUTOFMEMORY

解説

プロバイダーのバージョンは、他のバージョンのプロバイダーとの互換性をネゴシエートするために使用します。以下のシナリオについて考えてみます。

  • v1、v2、および v3 という 3 つのプロバイダー バージョンがあります。

  • v2 では、プロバイダーのカスタム スキーマに対して互換性のない変更が加えられました。

  • v2 と v3 は互換性があります。

v3 のプロバイダーでは、SetProviderVersion に値 v2 を指定できます。その後、v2 または v3 のプロバイダーでは、IReplicaMetadata2::GetProviderVersion を使用して、メタデータの処理に必要なプロバイダーのバージョンを確認できます。この値はメタデータ ストアの正規の形式の一部としてシリアル化されるため、ISyncMetadataStoreSerializer::DeserializeReplicaMetadata の dwExpectedProviderCompatibilityVersion パラメーターに値 v2 を指定して、メタデータのシリアル化を解除する際にプロバイダーのバージョンを確認することもできます。v1 のプロバイダーでは値 v1 が予想されるため、仕様上、シリアル化解除は失敗します。これは、このメタデータが v1 とは互換性がないためです。

同じプロバイダーの他のバージョンとの互換性レベルを最大限に確保するには、できるだけ最小バージョンを使用します。

参照

リファレンス

IReplicaMetadata2 インターフェイス