Tomcat Spring JVM MVC application timeout waiting for connection pool

My spring application running on tomcat opens up many connections to the local host:

tcp6       1      0 localhost:4431          localhost:44178         CLOSE_WAIT  2393/java       
tcp6       1      0 localhost:4431          localhost:44279         CLOSE_WAIT  2393/java       
tcp6       1      0 localhost:4431          localhost:44264         CLOSE_WAIT  2393/java       
tcp6       1      0 localhost:4431          localhost:44160         CLOSE_WAIT  2393/java       
tcp6       1      0 localhost:4431          localhost:44224         CLOSE_WAIT  2393/java    

And causes timeout waiting for connection pool.

Do you have any idea what the connections might be?

My server.xmllooks like this:

    <?xml version='1.0' encoding='utf-8'?>
    <Server port="8005" shutdown="SHUTDOWN">
      <Listener className="org.apache.catalina.core.JasperListener" />
      <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
      <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
      <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
      <Realm className="org.apache.catalina.realm.MemoryRealm" />
      <GlobalNamingResources>
        <Resource name="UserDatabase" auth="Container"
                  type="org.apache.catalina.UserDatabase"
                  description="User database that can be updated and saved"
                  factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                  pathname="conf/tomcat-users.xml" />
      </GlobalNamingResources>
      <Service name="Catalina">
        <Connector  port="8080" protocol="HTTP/1.1"
                    compression="on"
                    compressionMinSize="2048"
                    noCompressionUserAgents="gozilla, traviata"
                    compressableMimeType="
                        text/html,
                        text/xml,
                        text/plain,
                        text/css,
                        text/javascript,
                        text/json,
                        application/x-javascript,
                        application/javascript,
                        application/json,
                        application/x-font-woff,
                        image/png,
                        image/jpeg,
                        image/gif,
                        image/svg+xml
                    " 
                    connectionTimeout="20000"
                    URIEncoding="UTF-8"
                    maxThreads="10000"
                    maxConnections="-1"
                    redirectPort="4431" />
        <Connector  port="4431" protocol="HTTP/1.1"
                    compression="on"
                    compressionMinSize="2048"
                    noCompressionUserAgents="gozilla, traviata"
                    compressableMimeType="
                        text/html,
                        text/xml,
                        text/plain,
                        text/css,
                        text/javascript,
                        text/json,
                        application/x-javascript,
                        application/javascript,
                        application/json,
                        application/x-font-woff,
                        image/png,
                        image/jpeg,
                        image/gif,
                        image/svg+xml
                    "
                    connectionTimeout="20000"
                    URIEncoding="UTF-8"
                    maxThreads="10000"
                    maxConnections="-1"
                    scheme="https"
                    secure="true"
                    clientAuth="false"
                    proxyPort="443" />
        <Engine name="Catalina" defaultHost="localhost">
          <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
          <Realm className="org.apache.catalina.realm.LockOutRealm">
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                   resourceName="UserDatabase"/>
          </Realm>
          <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                   prefix="localhost_access_log." suffix=".txt"
                   pattern="%h %A %u %t &quot;%r&quot; %s %b &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot;" />
          </Host>
        </Engine>
      </Service>
    </Server>

Port 4431is the port of the main connector. It looks like the application calls itself.

+4
source share
2 answers

It seems you have an SSL configuration that doesn't end with tomcat, then you can completely remove the connector for the 4431 port and replace the redirectPort attribute of the 8080 connector with proxyPort = "443"

0
source

, , jconsole , . Java SDK, , Tomcat.

0

Source: https://habr.com/ru/post/1658950/


All Articles