テーブル内の異なるデータ セットを同期するために、同じテーブルにいくつかのスコープをプロビジョニングしようとしています。プロビジョニングはエラーなしでうまく機能します。ただし、同期しようとすると、SyncOrchestrator.Synchronize() の呼び出しがタイムアウトします。
スコープの 1 つだけを同期すると、スコープ フィルターによって定義されているデータだけでなく、すべてのデータが同期されているように見えます。
これは、スコープの 1 つのプロビジョニング コードです。スコープはそれぞれ別のスレッドで実行されるため、同時に同期されます。
サーバーのプロビジョニング:
var remoteLogVariableScopeDescription = new DbSyncScopeDescription(string.Format("{0}_{1}", DatabaseID, scopeName));
remoteLogVariableScopeDescription.Tables.Add(SqlCeSyncDescriptionBuilder.GetDescriptionForTable("TableName", localConnection));
var remoteDatabaseConfiguration = new SqlSyncScopeProvisioning(remoteConnection, remoteLogVariableScopeDescription);
remoteDatabaseConfiguration.ObjectPrefix = string.Format("Sync_{0}", scopeName);
remoteDatabaseConfiguration.Tables["TableName"].AddFilterColumn("Time);
remoteDatabaseConfiguration.Tables["TableName"].FilterClause = [side].Time >= DATEADD(minute, -1, GETDATE());
remoteDatabaseConfiguration.SetCreateTableDefault(DbSyncCreationOption.Skip);
remoteDatabaseConfiguration.SetUseBulkProceduresDefault(true);
remoteDatabaseConfiguration.CommandTimeout = 30;
remoteDatabaseConfiguration.Apply()
ローカル プロビジョニング:
DbSyncScopeDescription localFrequentScopeDescription = SqlSyncDescriptionBuilder.GetDescriptionForScope(string.Format("{0}_{1}", DatabaseID, scopeName), string.Format("Sync_{0}", scopeName), remoteConnection);
var localDatabaseConfiguration = new SqlCeSyncScopeProvisioning(localConnection, localFrequentScopeDescription);
localDatabaseConfiguration.ObjectPrefix = string.Format("Sync_{0}", scopeName);
localDatabaseConfiguration.SetCreateTableDefault(DbSyncCreationOption.Skip);
localDatabaseConfiguration.Apply();
私の質問は次のとおりです:私が提供したスコープフィルターは可能ですか? 同じテーブルで複数のスコープを同時に実行できますか?
助けてくれてありがとう!