I am having bad performance with an application that uses a custom tomcat executor when run in SpringSource DM Server 2.0.2.RELEASE vs standalone tomcat 6.0.18. I am suspicious that the executor/connector config is not working.
Below is my tomcat-server.xml file using with the 2.0.2.RELEASE.
As you can see, I have configured a custom Executor named "streamReceiverThreadPool" with 300 threads and configure the port 80 Connector to use it as well as Http11NioProtocol.
However, when running the server and inspecting it with JMX, I see:
- There are no JMX MBean nodes for /Catalina/Conector or /Catalina/Executor as there are with a standalone tomcat install.
- There is a /Catalina/ThreadPool/http-80 MBean with modelerType="org.apache.tomcat.util.net.NioEndpoin t" (seems like that got picked up correctly) but maxThreads="200".
Code:<?xml version='1.0' encoding='utf-8'?> <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Listener className="org.apache.catalina.core.JasperListener" /> <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="com.springsource.server.web.tomcat.ServerLifecycleLoggingListener"/> <Service name="Catalina"> <Executor name="streamReceiverThreadPool" namePrefix="catalina-exec-" maxThreads="300" minSpareThreads="30"/> <Connector executor="streamReceiverThreadPool" port="80" protocol="org.apache.coyote.http11.Http11NioProtocol" enableLookups="false" connectionTimeout="40000" maxKeepAliveRequests="1" keepAliveTimeout="0" connectionLinger="-1" acceptCount="10000" acceptorThreadCount="4" processCache="300" socket.processorCache="5000" socket.tcpNoDelay="true" socket.soLingerOn="false" /> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.JAASRealm" appName="dm-kernel" userClassNames="com.springsource.kernel.authentication.User" roleClassNames="com.springsource.kernel.authentication.Role"/> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="serviceability/logs/access" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/> <Valve className="com.springsource.server.web.tomcat.ApplicationNameTrackingValve"/> </Host> </Engine> </Service> </Server>


