錯誤提示:
嚴重: Error starting endpoint
java.io.IOException: Unable to establish loopback connection
at sun.nio.ch.PipeImplInitializer.run(PipeImpl.java:106)atjava.security.AccessController.doPrivileged(NativeMethod)atsun.nio.ch.PipeImpl.<init>(PipeImpl.java:122)atsun.nio.ch.SelectorProviderImpl.openPipe(SelectorProviderImpl.java:27)atjava.nio.channels.Pipe.open(Pipe.java:133)atsun.nio.ch.WindowsSelectorImpl.<init>(WindowsSelectorImpl.java:104)atsun.nio.ch.WindowsSelectorProvider.openSelector(WindowsSelectorProvider.java:26)atjava.nio.channels.Selector.open(Selector.java:209)atorg.apache.tomcat.util.net.NioEndpoint Initializer.run(PipeImpl.java:106) at java.security.AccessController.doPrivileged(Native Method) at sun.nio.ch.PipeImpl.<init>(PipeImpl.java:122) at sun.nio.ch.SelectorProviderImpl.openPipe(SelectorProviderImpl.java:27) at java.nio.channels.Pipe.open(Pipe.java:133) at sun.nio.ch.WindowsSelectorImpl.<init>(WindowsSelectorImpl.java:104) at sun.nio.ch.WindowsSelectorProvider.openSelector(WindowsSelectorProvider.java:26) at java.nio.channels.Selector.open(Selector.java:209) at org.apache.tomcat.util.net.NioEndpointInitializer.run(PipeImpl.java:106)atjava.security.AccessController.doPrivileged(NativeMethod)atsun.nio.ch.PipeImpl.<init>(PipeImpl.java:122)atsun.nio.ch.SelectorProviderImpl.openPipe(SelectorProviderImpl.java:27)atjava.nio.channels.Pipe.open(Pipe.java:133)atsun.nio.ch.WindowsSelectorImpl.<init>(WindowsSelectorImpl.java:104)atsun.nio.ch.WindowsSelectorProvider.openSelector(WindowsSelectorProvider.java:26)atjava.nio.channels.Selector.open(Selector.java:209)atorg.apache.tomcat.util.net.NioEndpointPoller.(NioEndpoint.java:1472)
at org.apache.tomcat.util.net.NioEndpoint.start(NioEndpoint.java:929)
at org.apache.coyote.http11.Http11NioProtocol.start(Http11NioProtocol.java:168)
at org.apache.catalina.connector.Connector.start(Connector.java:1220)
at org.apache.catalina.core.StandardService.start(StandardService.java:540)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:759)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.net.SocketException: No buffer space available (maximum connections reached?): connect
at sun.nio.ch.Net.connect(Native Method)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:532)
at java.nio.channels.SocketChannel.open(SocketChannel.java:146)
at sun.nio.ch.PipeImpl$Initializer.run(PipeImpl.java:78)
… 20 more
2018-8-20 10:00:21 org.apache.catalina.core.Sta
這是部分報錯信息,前面還有一大串此處省略。
解決思路:
這個問題困擾了我很久,tomcat一啟動,就開始報這個錯。導致網站也訪問不了。網上很多人說關閉防火牆什么的,重裝jdk什么的都試過,沒用。其實認真看一下報錯日志,說的是:No buffer space available 想想應該是window中有什么大的鏈接沒有關閉導致空間不足。查一查,果然,進程都結束了,依然后很多TIME_WAIT狀態的連接未釋放,再查看所有的time_wait連接。
解決過程:
1.cmd—>regedit 進入注冊表
2.進入 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
3.新建 DWORD 類型的注冊表項,命名為:MaxUserPort
4.值數據(雙擊MaxUserPort提示輸入值): 60000(用十進制的格式錄入進去,此值的有效范圍為5000-65534)
5.新建 DWORD 類型的注冊表項,命名為:TCPTimedWaitDelay
6.值數據: 30(TIME_WAIT的自動斷開時間,默認為4分鍾);
通過以上幾步操作,重新啟動tomcat。問題不復現,開心!!!!
結論:
由於大量的TIME_WAIT連接未被釋放,導致占用的端口資源一直未被回收,出現了緩沖區空間不足的問題,應用也總是自動斷線。
————————————————
版權聲明:本文為CSDN博主「Pkor_Wu」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_42301806/article/details/85099224