2012-04-17 16 views
0

私はTomcatアプリケーションを持っています。私は2つの異なるサーブレットが必要です。このケースでは、最初に医用イメージングのダウンロードを依頼しています。最初のリクエストが完全に完了する前に、別のAJAXクライアントからイメージを取得するリクエストがあります。しかし、何らかの理由で、サーバーは最初の要求が終了するまで、2番目の要求に応答しません。複数のサーブレットを同時に実行してTomcatを実行する方法は?

同時サーブレットの実行を達成するためには、何を変更する必要がありますか?我々は、複数のドライブ、複数のコアを備えたかなり良いサーバーを持っています。私はTomcat 6を使用しています。

+0

排他的アクセス権を持つリソースはありますか? –

答えて

1

もしそうなら、それはTomcatに関するものではありません。おそらくあなたはどこかで(暗黙的または明示的に)同期を使用しています。あなたは、スレッドプーリングexpicitlyを管理することができますしかし

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" 
       maxThreads="150" scheme="https" secure="true" 
       clientAuth="false" sslProtocol="TLS" /> 

または

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" 
     maxThreads="150" minSpareThreads="4"/> 

<Connector executor="tomcatThreadPool" 
       port="8080" protocol="HTTP/1.1" 
       connectionTimeout="20000" 
       redirectPort="8443" /> 

すなわち、最大スレッド数を指定するか、スレッドプールを使用することができます。詳細はこちらhttp://tomcat.apache.org/tomcat-5.5-doc/config/http.html

+0

私の最初のリクエストは、サードパーティのサーバーにアクセスしてイメージを取得する必要があります。私の2番目のリクエストは別のサーブレットに送られ、最初のサーブレットが書いているものだけを読む必要があります。すべてをロックしている人を見つけるにはどうすればいいですか? –

+0

最初のサーブレットはデータを書き込んでいますが、2番目のサーブレットはデータを読み込もうとしていますか?私はそれが鍵だと信じています。あなたはデータの読み書きに何を使用していますか? –

+0

最初のサーブレットには着信ファイルがあり、一度書き込まれるとロックされていないものと思われます。 2番目のファイルはファイルの読み取りを試み、失敗した場合(ファイルロックのため)、1秒後に再試行します。しかし、私が2番目の要求を見るのは、最初の要求が終わるまで停止します。だから私はTomcatについて不思議だった。 –

関連する問題