2009-07-17 12 views
0

Tomcatで軸Webサービスを実行しています。クライアントはHTTP 1.1にConnection:closeヘッダーを送信せずに接続しています。つまり、デフォルトはKeep-Aliveです。残念なことにクライアントは問題を抱えているようですが、例外が発生した場合、クライアントは接続を終了していません。これらのクライアントはバッチジョブでたくさんのトラフィックを送信しているので、これはすばやくすべての接続を奪います。特定のHandler(extends BasicHandler)が完了するとすぐに、各接続を閉じるようWebサービスに強制します。Axis Web Service Keep Alive

どうすればよいですか?私。 BasicHandler#invoke()を呼び出した後、サーバーに接続を強制的にクローズさせるにはどうすればよいですか?あなたのTomcatのserver.xmlファイルで

答えて

2

、HTTPコネクタの定義を見つける(それは、プロトコル= "HTTP/1.1" を持つ要素だ)、ここで説明するよう、のKeepAliveTimeout属性を追加します。

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

あなたは、あなたが望む振る舞いを与えるものを見るために、異なる値を試してみる必要があります。他の設定もチェックしてください。いくつかは役に立つかもしれません。

これはTomcat 6のドキュメントなので、すべてのオプションがtomcat 5で動作するわけではないので、tomcat 5のドキュメントの同じ部分を確認してください。

+0

私はこのオプションについて知っていました。問題はそれがサーバー全体であることです。私はJSPとサーブレットが生き残ってタイムアウトし続けるのを止めたくありません。ちょうどこの1つのwebservice。 – jcb

+0

HTTP処理はアプリケーションには公開されません。 server.xmlに別のポートで別のHTTPコネクタを定義して、Webサービスクライアントでそれを使用させることをお勧めします。 – skaffman

+0

upvoteもどうですか? :) – skaffman

関連する問題