相互に通信する Web サービスとモバイル アプリケーションを作成しました。すべてが機能しているとき、それはうまく機能します。サーバーが応答しないと、サーバーが故障し始めます。
モバイル デバイスは、一連のレコードを含むメッセージをサーバーに送信します。サーバーでレコードを取得することは決して問題ではないようです。レコードを取得し、更新を受信したという応答をモバイル デバイスに返します。問題は、モバイル デバイスが常に応答を受け取るとは限らないため、更新のためにそれらのレコードを再度送信してはならないことを認識していないことです。
次回レコードを再度送信すると、レコードが重複しています。どうすればこれを解決できますか?
アイデア 1) モバイル デバイスで一意のトランザクション番号を作成し、サーバーと比較して、レコードが既にアップロードされているかどうかを確認します。次に、そのレコードを書き込まず、それが書き込まれたという応答を送り返そうとしないでください。
アイデア 2) レコードをサーバーに送信しますが、レコードを書き込む前に、受信したことをモバイル デバイスに応答します。このようにして、モバイルデバイスはそれらにタグを付けてから、サーバーに別の応答を送信して、それらを書き込むように指示できます。この時点で、モバイル デバイスは、応答があるかどうかをほとんど気にしません。サーバーがメッセージを受信したかどうかはわかりません。
これらのアイデアのいずれかを確認するか、まったく異なるアイデアを持つ、これを処理する方法に関するアイデアを探しています。