1

Tomcat と Spring 3.0 で Java EE ベースの Web アプリケーションを実行しています。私の Web ページは、大量のレコードを削除するリクエストを送信します。リクエストがバックグラウンドで実行されている間に、「内部エラーが発生しました」というタイムアウト エラーが表示されます。

ブラウザのタイムアウトの問題だと思います。それを修正する方法はありますか?Tomcat の web.xml では、セッション タイムアウトが 30 に設定されています。

ポスト リクエストの代わりに Ajax コールバックを使用する必要がありますか?

4

1 に答える 1

2

Tomcat の前面で Apache HTTP Web サーバーを使用していますか?

タイムアウトにはいくつかのレイヤーがあります。

  1. Apache Web サーバー レベル (mod_proxy のタイムアウト設定を参照、mod_jk の worker.properties ファイルを参照)
  2. Tomcat コネクタ レベルで (ソケット タイムアウトについては、Tomcat conf/server.xml を参照してください)。
  3. Web アプリケーション セッションの有効期限レベル (Tomcat webapps/WEB-INF/web.xml セッション タイムアウト設定を参照)
  4. データベース タイムアウト - 長いデータベース クエリを実行すると、データベース クエリのタイムアウトが発生し、吐き出されます。

やるべきことは次のとおりです。

  1. タイムアウトの単位が正しいことを確認してください。秒、分、ミリ秒を使用するものもあります。正しいものを持っていることを確認してください。
  2. tcpdump と Tomcat に接続された Java デバッガーを使用して、タイムアウトが発生している場所を確認します。Tcpdump は、タイムアウトが発生するまでのネットワーク トラフィックを表示できるため便利です。Java デバッガーは、サーバー レベルの要求で何が起こっているかを正確に確認したい場合に役立ちます。

これらから、タイムアウトの最終的な原因を見つけ、その情報でこのチケットを更新できます。

于 2012-06-14T17:56:08.487 に答える