明確にするために、リモートサービスへの要求を処理する優れた方法がありますか?クライアントのタイムアウトは、要求の結果を疑う余地なく残していますか?要求の結果が不明なので、リモートサービスに接続するときにクライアント側のタイムアウトを処理する良い方法は何ですか?
次のセットアップを想定します
thick client <--> web service <--> database
は、次のことを想定したデータを保存するための一般的なプロセスです:
- シッククライアントは、Webサービス
- にWebサービスをPUTリクエストを送信しますデータをデータベースにコミットします
- Webサービスがシッククライアントに成功を返します
手順2と3の間でクライアント側のタイムアウトが発生する状況を処理する方法がわかりません。このような場合、シッククライアントの前に座っている人は要求が失敗したと思うでしょうが、実際に成功しました。
シッククライアントを使用している人に、要求の状態が疑わしいと説明しようとすることを含まないこのような状況を緩和する方法はありますか?私は仕事をするエラーメッセージを書くことができないと思う。
次のリクエストも問題です。元の要求が新しいデータを作成することであった場合、後続の要求によって重複データが作成されることがあります。元の要求が既存のデータの更新であり、サーバーがオプティミスティック・ロック方式を使用している場合、後続の要求によって別のエラーが発生します。