Announcement Announcement Module
Collapse
No announcement yet.
Unable to configure tomcat executor? Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Unable to configure tomcat executor?

    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>
    Last edited by blahb; Jun 3rd, 2010, 07:32 PM.

  • #2
    The problem is in JMX

    I was able to take a heap dump and verify that the specified custom executor does exist, and I was able to solve the performance problem, which was unrelated.

    But the problem remains that JMX in SpringSource DM Server 2.0.2.RELEASE does not expose MBean nodes for /Catalina/Conector or /Catalina/Executor as is done with a standalone tomcat install.

    Is there a way to restore this functionality? We use it for monitoring!

    Comment

    Working...
    X