レガシーシステムの置き換えを進めています。両方のアプリケーションが並行して実行される期間があります。ユーザーはどちらのシステムも使用できますが、課題はデータベースを相互に同期させることです。
新しいシステムは ASP.NET で、レガシーは VB6 です。どちらも SQL Server データベースで実行されています。現時点では、データベースが同じサーバー ルームにあるかどうか、ましてや同じ国にあるかどうかは不明です。
これまでのところ、テーブルにある 2 つのソリューションは次のとおりです。
- 各マシンに常駐し、他のアプリケーションによって呼び出される Web サービス。
- ネイティブ オブジェクトの基本クラスの Save メソッドを変更する必要があります。これは侵襲的であり、スイッチをオフにすると問題になる可能性があります.
各データベースをポーリングし、何が変更されたかを調べ、適切な更新を転送する単一の Windows サービス。
- 両方のアプリケーションのスキーマを変更して、すべてのテーブルに LastModified (DateTime) があることを確認し、任意の間隔で定期的な SELECT を実行できるようにする必要があります。
どちらの解決策も妥当に思えます。どちらのソリューションにも長所と短所があります。ビジネスは、1 つのシステムを更新してから別のシステムで確認するまでの遅延を 2 秒 (!) 以内にするよう求めています。それはおそらくストレッチ ターゲットですが、目指すべきものです。
提案されたが拒否された他のもの(私は再考するつもりです)は次のとおりです。
- データベース トリガー (blogrh)
- BizTalk またはその他のバス (スレッジ ハンマーのように見え、スイッチオーバー ソリューションには複雑すぎる)
- すべてのストアド プロシージャを変更する (nooooo.)
- SSIS (これについてはまだ十分にわかっていません)
あなたが持っているかもしれないどんな考えにも感謝します。
編集: 注意: スキーマは完全に異なります。