2012-02-27 16 views
2

私はTomcatの初心者ですから、これに対する答えはかなり簡単ですが、Googleは今日私には親切ではありません。複数のSOAPリクエストを同時に行うようにTomcatを設定する

Apache TomcatにJava Webアプリケーションがマウントされています。アプリケーションはフロントページ(診断目的のため)を持っていますが、アプリケーションは実際にはすべてSOAPインタフェースに関するものです。クライアントは、サーバのWebページを調べる必要はありません。クライアントはSOAP要求をサーバーに送信し、サーバーは要求を解析し、結果をデータベースで検索します。結果は、再びSOAPを介してクライアントに返されます。

デフォルト設定では、Tomcatはリクエストをキューに入れているようです。私の実験は、同じサーバーを指し、正確に同じ時間に検索を実行している2つの別々のマシンにクライアントをインストールすることから構成されていました(もう1つは0.11秒後ですが、

同時リクエストスレッドの数を設定するにはどうすればよいですか? 理想的な設定では、Xリクエストスレッドを持つことになります。各リクエストスレッドは、リサイクル(つまり、デストラクタとコンストラクタを呼び出し、そのメモリ割り当てをリサイクルします)すると、毎分またはZリクエストのいずれか早い方が早いです。私はこれを行うためにIISを構成できると言います(私もIISでの経験はありませんが)が、Tomcatでこれをどうやって行いますか?

私は、Tomcatがリクエストが入ってリリースされていないときにメモリをつかんでいるように見えるのでスレッドをリサイクルできるようにしたい。つまり、私たちが近づいているときにJavaのヒープスペースエラーメモリの制限(これはすでに2GBサーバーで1GBに設定されています)。私はこれが私のアプリケーションのメモリリークによるものか、あるいは私が使用しているツールが大量のメモリを使用しているかどうかを100%確信しているわけではありません。

何かアドバイスをいただければ幸いです。

おかげで、 のRik

+2

SOAPリクエストは最後にHTTPリクエストであり、Tomcatは任意のWebコンテナであるため、(キューイングなしで)同時リクエストをサポートすることができます。 SOAPエンジン(Axis、JAX-WS)とは何ですか? –

+1

私はJAX-WSを信じています。私は間違っている可能性があり、それはキューに入れていませんが、そのような場合でも、私はまだそれを設定することができる/設定が何であるかの可視性を持っていると思います。 – RikSaunderson

+0

Tomcatは、デフォルトで並行要求を行います(これがなければ、役に立たないでしょう!)。サービスを実装するために使用しているWSフレームワークを投稿してください。 – Perception

答えて

1

Tomcatは、デフォルトでは、150件の同時HTTPリクエストを扱うことができます - これは完全に設定可能であり、明らかに、サーバーの仕様や用途によって異なります。

しかし、アプリケーションが接続のバーストを処理する必要がある場合は、Tomcatの最小および最大の「予備」スレッドを調べることをおすすめします。これらは、接続を積極的に待っているスレッドです。待機中のスレッドが十分でない場合、Tomcatはさらに多くを割り当てる必要があり(わずかなオーバーヘッドが発生する)、遅延が発生する可能性があります。

また、コネクタを構成する方法について説明し、この質問に対する私の答えを見てあります。また

Tomcat HTTP Connector Threads

を、基本的なJVMのチューニングを見て - 特にヒープ割り当てのオーバーヘッドとGCに関連して休止時間。

関連する問題