2012-03-16 2 views
0

明確にするために、リモートサービスへの要求を処理する優れた方法がありますか?クライアントのタイムアウトは、要求の結果を疑う余地なく残していますか?要求の結果が不明なので、リモートサービスに接続するときにクライアント側のタイムアウトを処理する良い方法は何ですか?

次のセットアップを想定します

thick client <--> web service <--> database 

は、次のことを想定したデータを保存するための一般的なプロセスです:

  1. シッククライアントは、Webサービス
  2. にWebサービスをPUTリクエストを送信しますデータをデータベースにコミットします
  3. Webサービスがシッククライアントに成功を返します

手順2と3の間でクライアント側のタイムアウトが発生する状況を処理する方法がわかりません。このような場合、シッククライアントの前に座っている人は要求が失敗したと思うでしょうが、実際に成功しました。

シッククライアントを使用している人に、要求の状態が疑わしいと説明しようとすることを含まないこのような状況を緩和する方法はありますか?私は仕事をするエラーメッセージを書くことができないと思う。

次のリクエストも問題です。元の要求が新しいデータを作成することであった場合、後続の要求によって重複データが作成されることがあります。元の要求が既存のデータの更新であり、サーバーがオプティミスティック・ロック方式を使用している場合、後続の要求によって別のエラーが発生します。

答えて

0

おそらく、実際に操作が成功した場合にクライアントが後で(10秒または1分)チェックを有効にしたい場合があります。このようなAPIを使用するには、Webサービスを強化する必要があります。

また、クライアントタイムアウトを本当に高く設定することもできますが、1分後にユーザーにタイムアウトメッセージを表示します。後でWebサービス呼び出しが予期せず成功した場合、操作が完了したことを伝えるメッセージボックスを使用してユーザーを中断できます。

関連する問題