1

我有一个 Tomcat 应用程序,我需要两个不同的 servlet 或同一个来并行响应我的请求。情况是我有第一个请求要求下载医学影像,而我有另一个 AJAX 客户端请求在第一个请求完全完成之前获取图像。但是由于某种原因,直到第一个请求结束,服务器才响应我的第二个请求。

为了实现并发 servlet 执行,必须改变什么?我们有一个非常好的服务器,它有多个驱动器、多个内核。我正在使用 Tomcat 6。任何可以探索的想法都会很棒。

4

1 回答 1

2

如果发生这种情况,则与 Tomcat 无关。可能您正在某处使用同步(隐式或显式)。

但是,您可以明确地管理线程池:

 <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

于 2012-04-17T00:33:24.947 回答