confluence中org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket accept failed的解决方法
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
由最后一句知道已启动成功,网页访问,成功!