0

Tomcat で実行されている軸 Web サービスがあります。クライアントは、HTTP 1.1 の Connection: close ヘッダーを送信せずに接続を確立しています。これは、デフォルトが Keep-Alive であることを意味します。残念ながら、クライアントに問題があるようで、例外が発生した場合、クライアントは接続を閉じていません。これらのクライアントはバッチ ジョブで大量のトラフィックを送信しているため、すぐにすべての接続が使い果たされます。特定のハンドラー (BasicHandler を拡張) が完了するとすぐに、Web サービスに各接続を強制的に閉じさせたいと考えています。

どうすればいいですか?つまり、BasicHandler#invoke() を呼び出した後、サーバーに接続を強制的に閉じるにはどうすればよいですか?

4

1 に答える 1

2

Tomcat の server.xml ファイルで、HTTP コネクタの定義 (protocol="HTTP/1.1" を含む要素) を見つけ、keepAliveTimeout 属性を追加します。詳細は次のとおりです。

http://tomcat.apache.org/tomcat-6.0-doc/config/http.html

さまざまな値を試して、どの値が目的の動作になるかを確認する必要があります。他の設定も確認してください。役に立つものもあります。

これは Tomcat 6 ドキュメントであるため、すべてのオプションが tomcat 5 で機能するとは限らないことに注意してください。Tomcat 5 ドキュメントの同じ部分を確認してください。

于 2009-07-17T15:24:30.670 に答える