私たちは、レガシ ステータスに急速に近づいている .NET 3.5 アプリを使用しています。データベースからレコードを読み取り、それらをサードパーティの MS SQL データベースに保存して、すべてのデータ行を 1 つのバッチで送信する既存の SOAP サービスがあります。
これは常に問題なく機能していましたが、最近、以前よりもはるかに大規模なクライアントを引き受けました。クライアントははるかに大きなバッチを送信しているため、失敗し始めています。IIS でタイムアウトと最大メモリ サイズを増やし、web.config で maxRequestLength を最大化しましたが、まだサイズの問題が発生しています。
したがって、長期的には、SOAP から WCF への移行を検討する必要があることを理解しており、その計画は進行中です。しかし当面は、この新しいクライアントの短期的な修正が必要です。そしてもちろん、ビジネス担当者と営業担当者を満足させるには、ちょっと急がなければなりません。
ベストプラクティスのアプローチが何であるか疑問に思っています。最初はこのようなことを考えていましたが、ボックス内で考えすぎている可能性があります。
一度に同期を試みたくないレコード数のベンチマークを確立します。
データを保存する前に、そのベンチマークに対してレコード数を確認してください
それを上回っている場合は、伝送をそれぞれがそのベンチマークを下回っているセグメントに分割します。SELECT TOP 10000 * FROM table WHERE sent = false など、ベンチマークが 10000 の場合。次に、送信されたレコードの更新を true に送信します。繰り返す。
明らかに、これによりプロセスが遅くなるため、ユーザー エクスペリエンスを処理するために、進行状況を確認できるようにステータス バーを表示したい場合があります。
私は正しい軌道に乗っていますか?