2017-02-21 15 views
0

クライアントが要求を送信し、タイムアウト例外をキャッチします。ただし、サーバーは依然として要求を処理し、データベースに保存しています。それが起こる前に、クライアントはすでにデータベース上のレコードを2倍にする第2の要求を送信しました。それをどうやって防ぐのですか?私はJavaサーブレットとjavascriptを使用しています。クライアント側の要求タイムアウトをJavaで処理する

+0

エラーが発生しました。タイムアウトを長くしますか? – EJP

答えて

0

いくつかの提案: -

1)クライアントタイムアウトを増やしてください。

2)サーバーをより効率的にして、応答が速くなるようにします。

3)サーバーは、メインの応答を返す前に中間の「私はそれに取り組んでいます」応答で応答するようにしてください。

4)サーバは、すべてクライアントに応答する前に作業する必要がありますか、または後で実行するために別のプロセスにオフロードすることはできますか?

0

クライアントが要求を送信し、タイムアウト例外をキャッチします。しかし、サーバーはまだ依頼を処理しています

サーブレットが何らかの出力を生成するようにします(空白だけでもかまいません)。また、たびたび毎回(15秒ごとに)ストリームをフラッシュします。

クライアント側で接続が閉じられていると、書き込みはソケット例外で失敗します。その出来事の前に

、クライアントはすでに、例えば、一意のキーをデータベースの原子を使ってデータベース

にレコードを倍増第2の要求を送りました。一意のレコードを作成して(おそらくは「未完成」の状態で)、プロセスを開始します。レコードがすでに存在する場合は失敗します。

関連する問題