1. 程式人生 > >confluence中org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket accept failed的解決方法

confluence中org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket accept failed的解決方法

load cal internal works dac shu per ots star

confluence中org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket accept failed的解決方法

1.confluence中報錯信息如下:

嚴重 [http-nio-18090-Acceptor-0] org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket accept failed
 java.io.IOException: 打開的文件過多
    at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
    at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:
422) at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:250) at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:692) at java.lang.Thread.run(Thread.java:748) 嚴重 [main] org.apache.catalina.core.StandardServer.await StandardServer.await: accept: java.net.SocketException: 打開的文件過多 (Accept failed) at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:
409) at java.net.ServerSocket.implAccept(ServerSocket.java:545) at java.net.ServerSocket.accept(ServerSocket.java:513) at org.apache.catalina.core.StandardServer.await(StandardServer.java:464) at org.apache.catalina.startup.Catalina.await(Catalina.java:717) at org.apache.catalina.startup.Catalina.start(Catalina.java:
663) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)

2.分析線程配置應該有問題,文件過多,tomcat需要調整,在server.xml中修改如下一段

<Server port="8000" shutdown="SHUTDOWN" debug="0">
    <Service name="Tomcat-Standalone">
        <Connector port="18090" connectionTimeout="20000" redirectPort="8443"
                maxThreads="48" minSpareThreads="10"
                enableLookups="false" acceptCount="1" URIEncoding="UTF-8"
                protocol="org.apache.coyote.http11.Http11NioProtocol" />

修改為:

<Server port="8000" shutdown="SHUTDOWN" debug="0">
    <Service name="Tomcat-Standalone">
        <Connector port="18090" connectionTimeout="20000" redirectPort="8443"
                maxThreads="48" minSpareThreads="10"
                enableLookups="false" acceptCount="100" URIEncoding="UTF-8"
                protocol="org.apache.coyote.http11.Http11NioProtocol" />

acceptCount="1"修改為acceptCount="100"即可

3.重啟confluence

/etc/init.d/confluence restart

4.查看日誌


17-Oct-2018 16:32:16.608 信息 [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-18090"]
17-Oct-2018 16:32:16.621 信息 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
17-Oct-2018 16:32:16.623 信息 [main] org.apache.catalina.startup.Catalina.load Initialization processed in 362 ms
17-Oct-2018 16:32:16.629 信息 [main] org.apache.catalina.core.StandardService.startInternal Starting service Tomcat-Standalone
17-Oct-2018 16:32:16.629 信息 [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.0.43
17-Oct-2018 16:32:17.798 信息 [localhost-startStop-2] org.apache.catalina.core.ApplicationContext.log Spring WebApplicationInitializers detected on classpath: [com.atlassian.synchrony.proxy.SynchronyDispatcherServletInitializer@1521621]
17-Oct-2018 16:32:18.001 信息 [localhost-startStop-2] org.apache.catalina.core.ApplicationContext.log Initializing Spring FrameworkServlet ‘dispatcher‘
17-Oct-2018 16:32:18.001 信息 [localhost-startStop-2] org.springframework.web.servlet.DispatcherServlet.initServletBean FrameworkServlet ‘dispatcher‘: initialization started
......
17-Oct-2018 16:32:18.765 信息 [localhost-startStop-2] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.initControllerAdviceCache Looking for @ControllerAdvice: WebApplicationContext for namespace ‘dispatcher-servlet‘: startup date [Wed Oct 17 16:32:18 CST 2018]; root of context hierarchy
17-Oct-2018 16:32:18.873 信息 [localhost-startStop-2] org.springframework.context.support.DefaultLifecycleProcessor.start Starting beans in phase 2147483647
17-Oct-2018 16:32:18.890 信息 [localhost-startStop-2] org.springframework.web.servlet.DispatcherServlet.initServletBean FrameworkServlet ‘dispatcher‘: initialization completed in 889 ms
2018-10-17 16:32:20,326 INFO [localhost-startStop-1] [atlassian.confluence.cluster.DefaultClusterConfigurationHelper] lambda$populateExistingClusterSetupConfig$1 Populating setup configuration if running with Cluster mode...
17-Oct-2018 16:33:18.000 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-18090"]
17-Oct-2018 16:33:18.017 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 61393 ms

由最後一句知道已啟動成功,網頁訪問,成功!

confluence中org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket accept failed的解決方法