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

2018/10/17 19:12
阅读数 528

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

由最后一句知道已启动成功,网页访问,成功!

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部