2

ここで少しアドバイスが必要です。私たちは、.NET Compact フレームワークと SQL CE をモバイルで使用し、顧客のオフィスで中央の SQL 2005 データベースを使用して、いくつかの Windows モバイル開発を行っています。現在、マージ レプリケーション テクノロジを使用してデータを同期しています。

最近、同期がエラーをスローし、一般的に信頼性が低いという厄介な問題が発生しました。これは、レプリケーションの問題に関する情報が限られているように見えるという事実によって悪化します。これは、一般的に使用されているテクノロジーではないことを示唆しています。

それで、レプリケーションがデータを同期するための方法なのか、それともより信頼できる方法があるのか​​ 疑問に思っていました. 私はおそらくWebサービスかそのようなものを考えていました。このソリューションを実装するために何を使用しますか?

デイブ

4

5 に答える 5

0

あなたは間違いなくCEの安定性の限界を押し広げていますね。

これを行ったとき、断続的な相互更新や更新を伴う同時非同期データ収集のような同期とは考えないことで、かなりの量の競合許容度を追加する必要があることに気付きました。特に、私は常にID列を何かに使用することを避けてきました。実際の(代理ではない)データに基づいて真の主キーを厳密に順守できる場合は、作業が簡単になります。SourceUnitNumberとタイムスタンプで構成されるPKが適切に機能する場合があります。

可能であれば、リモートで収集されたデータを、時系列に並べられた累積トランザクションの単純なタイムスタンプ、ソースID、ユーザーIDのログとして表示します。逆に言えば、ホストは静的な検証情報を提供しますが、戻る必要はありません。代わりにCRUDトランザクションを送り返します。

これがどうなるかを投稿してください。これに役立つ信頼性の高いMicrosoftテクノロジを知りたいと思っています。

于 2009-02-09T22:14:03.003 に答える
0

レプリケーションはあまり使用していませんが、使用したことはありますが、問題はありません。問題は、物事を慎重に設定する必要があるということです。どちらの方法を使用する場合でも、考えられるさまざまな状況 (両方のデータベースの変更など) のすべてを管理するルールを決定する必要があります。

「一般的に少し信頼できない」ことについてより具体的に説明すると、より有用なアドバイスが得られるかもしれません。私が言えることはそれだけなので、問題はありませんでした。

編集:以下の回答を踏まえて、SSISまたはその他の方法を使用するカスタムレプリケーションを確実に使用できるとだけ言っておきますが、本番環境でレプリケーションを正常に使用しているショップは間違いなくあります。

于 2009-02-09T14:33:49.803 に答える
0

私たちは同様の状況に取り組んでいますが、切断されたモデルで動作し、Windows デスクトップで実行されるツールのプログラミングに関与しています...クライアントには SQL Server Compact Edition を使用し、Microsoft SQL Server 2005 を使用しています。サーバー ソリューション用の Web サービス。

同期サービスを有効にするために、最初は独自の同期フレームワークを構築することから始めましたが、そのフレームワークをシステムの他の部分と同期させるために多くの問題を抱えた後、Microsoft Synchronization Framework を使用することにしました。( http://msdn.microsoft.com/en-us/sync/default.aspx参照)。私たちの最初の要件は、アプリケーションを Intuit QuickBooks のような他のパッケージをインストールするのと同じくらい使いやすいものにすることでした。そして、私たちはほぼ成功したと思います。

Microsoft の Synchronization Framework には浮き沈みがありますが、現時点で言える唯一の悪い点は、ドキュメントがひどいことです。

現在、それを使用し続けるか、独自の同期サブシステムの維持に戻るかを決定するための話し合いが行われています。その上でYMMVがありましたが、私たちにとっては、問題の迅速な修正でした.

于 2009-02-09T22:01:19.897 に答える
0

TomH & le dorfier - 私たちの問題の一部は、ID フィールドを持つレプリケートされたテーブルの 1 つに顧客が多数の行を挿入できるようにしていることだと思います。指定した月/年までの複数のタスクを自動的に実行できるスケジューリング アプリケーションです。失敗したときの 1 つは、テーブルに 15000 行を入力したときでした。ID 範囲の拡大を検討します。

同期フレームワークは興味深いように思えますが、ドキュメントが貧弱であるというレプリケーションと同様の問題に苦しんでいるように思えます。レプリケーションに関するヘルプを探すのはちょっとした悪夢のようなもので、同様の問題を抱えたものに移行する必要があるかどうかわかりません。M'soft には、ベータ s'ware をサポートしているように見えるもののリリースをやめてほしいです!

于 2009-02-10T09:41:59.653 に答える
0

エラーが2回発生しましたが、これは本当に苦痛な修正でした:-

挿入に失敗しました。データベース 'egScheduler'、レプリケートされたテーブル 'dbo.tblServiceEvent'、列 'serviceEventID' の ID 範囲チェック制約と競合しました。ID 列がレプリケーションによって自動的に管理される場合は、範囲を次のように更新します。パブリッシャーの場合、sp_adjustpublisheridentityrange を実行します。サブスクライバーの場合は、ディストリビューション エージェントまたはマージ エージェントを実行します。

ストアド プロシージャを実行しようとしたときに ID が混乱したため、同期しようとすると、レプリケーション モニターで次のエラーがスローされます。

整合性違反のため、行操作を再適用できません。パブリケーション フィルタを確認します。[,,,Table,Operation,RowGuid] (ソース: MSSQLServer、エラー番号: 28549)

スナップショットが無効になるという問題もいくつかありましたが、これらは比較的簡単に修正できました。しかし、ここでやろうとしていることに対してレプリケーションが最善の方法なのか、それとももっと簡単な方法があるのか​​ 疑問に思っています。これが私の最初の質問を促したものです。

于 2009-02-09T16:07:15.163 に答える