サブスクリプションの再初期化 (SQL Server Compact)
アプリケーションでは、Replication オブジェクトを使用して既存の MicrosoftSQL Server サブスクリプションを再初期化し、新しいスナップショット データをパブリッシャからダウンロードします。これが特に役立つのは、Microsoft SQL Server Compact 3.5 サブスクリプションに、パブリッシャー側で定期的に更新される読み取り専用のデータが含まれている場合です。
ReinitializeSubscription メソッドの呼び出し
アプリケーションでサブスクリプションを再初期化する場合は、Replication オブジェクトが作成され、適切な Replication オブジェクトのプロパティが設定され、その後、ReInitializeSubscription メソッド (レプリケーション) が呼び出されます。
注意
Microsoft Visual C++ for Devices では、アプリケーションは Replication オブジェクトの単一のインスタンスに対し、ReinitializeSubscription、Initialize メソッド (レプリケーション)、Run メソッド (レプリケーション)、および Terminate メソッド (レプリケーション) をこの順で呼び出す必要があります。アプリケーションで ReinitializeSubscription を呼び出すだけでは既存のレプリカに再初期化のマークが付けられるだけなので、その後にメソッド呼び出しが必要です。アプリケーションで Initialize、Run、および Terminate メソッドを呼び出して初めて、既存のレプリカが削除され、パブリッシャからデバイスにダウンロードしたパブリケーションの新しいレプリカが作成されます。マネージ コードを使用する場合、ReinitializeSubscription メソッドのみが使用されます。
このトピックでは、サブスクリプションを再初期化する方法の例を示します。
複数のサブスクリプションと ReinitializeSubscription メソッド
SQL Server Compact 3.5 では 1 つのデータベースを複数のパブリケーションと同期できるので、ReinitializeSubscription メソッドを使用してサブスクリプションを再初期化するときは、複数のサブスクリプションへの影響を考慮する必要があります。
データベースにサブスクリプションが 1 つしか含まれていない場合、ReinitializeSubscription メソッドを呼び出すと、そのサブスクリプションは次回の同期中に再初期化するようマークされます。
データベースに複数のサブスクリプションが含まれている場合、Publisher、Publication、および PublisherDatabase プロパティを設定して、再初期化するサブスクリプションを明示する必要があります。
注意
自動再同期は、常に SQL Server に対する独立した同期と見なされます。したがって、SQL Server レプリケーション モニタでは、それぞれ別の同期処理が行われます。SQL Server Compact 3.5 のサブスクライバでは、SqlCeReplication クラスの PublisherChanges、SubscriberChanges、PublisherConflicts、および SubscriberConflicts プロパティの値が加算され、最後の同期の戻り値として、すべての同期の合計が返されます。