Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JVM Tomcat Spring MVC应用程序等待连接池超时_Java_Spring_Spring Mvc_Tomcat - Fatal编程技术网

Java JVM Tomcat Spring MVC应用程序等待连接池超时

Java JVM Tomcat Spring MVC应用程序等待连接池超时,java,spring,spring-mvc,tomcat,Java,Spring,Spring Mvc,Tomcat,我在tomcat上运行的spring应用程序打开了许多与localhost的连接,如下所示: tcp6 1 0 localhost:4431 localhost:44178 CLOSE_WAIT 2393/java tcp6 1 0 localhost:4431 localhost:44279 CLOSE_WAIT 2393/java tcp6

我在tomcat上运行的spring应用程序打开了许多与localhost的连接,如下所示:

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    
    <?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>
并导致等待连接池超时。

你知道这些联系是什么吗

我的
server.xml
如下所示:

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    
    <?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>


端口
4431
是主接头的端口。应用程序似乎在调用自身。

如果您的SSL配置没有以tomcat结尾,那么您可以完全删除4431端口的连接器,并用proxyPort=“443”

替换8080连接器的redirectPort属性,以了解应用程序中发生了什么,我会运行jconsole,看看它是什么线程。它是JavaSDK的一部分,允许您查看在Tomcat中运行的线程

您可能会打开连接,然后在完成连接后再也不会关闭它们。跟踪所有打开的,并用关闭来关闭它们。我不打开与本地主机的连接。我使用的RESTAPI速度非常慢,但该API在另一台服务器上运行。为什么有从localhost到localhost的连接?它不是数据库的端口?你检查过tomcat的conf目录中的
4431
吗?我没有打开数据库连接。应用程序只使用RESTAPI作为持久层。您能发布更多详细信息吗?您的应用程序是部署在Tomcat中还是使用嵌入式容器?你用的是弹簧靴吗?你可以在github上发布应用程序的分条版本,这样可以重现问题。我会试试看。