5

以下の同期を維持することを含む次の問題に直面しています。

  • 1集中型サーバー(IIS / MSSQL 2005)
  • ClickOnceによって配布される多くのデスクトップWPFクライアント
  • 多くのモバイルクライアント-(Windows CE)

代替テキストhttp://img502.imageshack.us/img502/8246/deployment.png

これらの厄介な制約がある場合:

  • すべての同期関係は双方向です
  • デスクトップとモバイルノードにはオフラインモードが必要です
  • モバイルノードは中央サーバーと同期できませんが、USB経由でデスクトップノードと同期します。デスクトップノードは、中央サーバーではなく、モバイルクライアントのサーバーとして機能します。次に、モバイルノードからの更新は、デスクトップと同期し、そのデスクトップを中央サーバーと同期することにより、中央サーバーに伝播する必要があります。 おい

不快な。

デスクトップとサーバーを同期するには、Merge Replicationを使用できることがわかっています。サーバーはプロバイダーであり、デスクトップはサブスクライバーです。しかし、モバイルノードとデスクトップノードの同期についてはどうでしょうか。どうやらデスクトップはSQLサーバー+ISSなしではパブリッシャーにはなれませんよね?MSSQLCEはデスクトップにのみ展開できます。

この場合でも、ノードはサブスクライバーとパブリッシャーの両方になることができますか?この配置はMergeReplicationアーキテクチャではサポートされていないようです。サポートされているモデルはハブアンドスポークだけのようです。

考えられる解決策としてRDAまたはマージレプリケーションを排除できるかどうかを判断しようとしています。そうであれば、おそらくMSSyncFrameworkを追求するでしょう。

おそらく、私たちが検討できる他のテクノロジーはありますか?

皆さんありがとう、

アシュリー

更新:MS Sync Frameworkを使い始めたばかりで、すばらしいです。

4

2 に答える 2

7

あなたの特定の質問に直接関係しない理由のために、私はあなたが先に進んで、可能な解決策としてRDA/マージレプリケーションを排除することができると思います。Microsoftはこれを(明らかな理由で)アドバタイズしませんが、レプリケーションプロセスの途中でネットワーク接続が切断される可能性がある状況(Windows Mobileクライアントで非常に頻繁に発生します)では、マージレプリケーションは100%信頼できません。

この問題の結果、クライアントデータベースに加えられた変更がマスターデータベースに完全に伝達されない場合がありますが、これが発生したことを示す検出可能な兆候は得られません。ご想像のとおり、これは悪いことです。特に、RDAが宣伝どおりに機能するという前提に基づいて、このソリューションでクライアントを販売した場合はなおさらです。この問題に対して私たちが見つけた唯一の短期的な解決策は、非常に不格好な二重冗長プロセスを実装して、クライアントで追加または変更された各レコードがエラーなしでサーバーに到達したことを確認することでした。長期的な解決策は、RDAを二度と使用しないことでした。

この問題はRDAの最近のバージョンで修正された可能性があります(2年前の最新バージョンで問題が発生しました)が、私にはわかりません(一度噛まれたら恥ずかしがり屋です)。

更新:ちなみに、これについて話した多くの人(Microsoftサポート技術者を含む)は、これが本当かもしれないことを否定していますが、確認するのは非常に簡単です:クライアントに大量のデータを追加してからレプリケーションを開始し、その途中でUSBケーブルをデバイスから引き抜きます(クライアントがActiveSyncを介して接続しているWindows Mobileであると想定します)。

私が少し不満を感じているように見えるのは、これがMS techが最終的に言わざるを得なかったためです(実際の引用):「まあ、複製を続けてください-データは最終的にマージされます」。

于 2009-08-18T01:35:09.713 に答える
1

Microsoft Framework 2.0のコラボレーションシナリオ(ピアツーピア)を確認してください。そこに含まれるプロバイダーにより、2つのSQLServerCompactデータベースを直接同期できます。また、他のプロバイダーと直接同期することもできます。

于 2009-12-23T15:31:43.767 に答える