启动tomcat出现org.apache.tomcat.jni.Error: 730055

场景描述:服务运行正常中,访问localhost不能进入系统,然后重启tomcat控制台出现了异常信息。异常信息如下:


五月 11, 2020 10:26:24 上午 org.apache.tomcat.util.net.AprEndpoint allocatePoller
严重: Poller creation failed
org.apache.tomcat.jni.Error: 730055: ???????????????×??ò???????ú????????????
    at org.apache.tomcat.jni.Poll.create(Native Method)
    at org.apache.tomcat.util.net.AprEndpoint.allocatePoller(AprEndpoint.java:1234)
    at org.apache.tomcat.util.net.AprEndpoint$Poller.init(AprEndpoint.java:1432)
    at org.apache.tomcat.util.net.AprEndpoint.start(AprEndpoint.java:887)
    at org.apache.coyote.ajp.AjpAprProtocol.start(AjpAprProtocol.java:191)
    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:761)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

五月 11, 2020 10:26:24 上午 org.apache.tomcat.util.net.AprEndpoint allocatePoller
严重: Poller creation failed
org.apache.tomcat.jni.Error: 730055: ???????????????×??ò???????ú????????????
    at org.apache.tomcat.jni.Poll.create(Native Method)
    at org.apache.tomcat.util.net.AprEndpoint.allocatePoller(AprEndpoint.java:1234)
    at org.apache.tomcat.util.net.AprEndpoint$Poller.init(AprEndpoint.java:1432)
    at org.apache.tomcat.util.net.AprEndpoint.start(AprEndpoint.java:887)
    at org.apache.coyote.ajp.AjpAprProtocol.start(AjpAprProtocol.java:191)
    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:761)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)


在cmd中输入 netstat -ano|findstr “8080” 发现命令窗口一直在打印大量的TIME_WAIT状态的信息,应用占用了大量的缓存TIME_WAIT且没有释放,导致其他应用无法启动,缓冲空间不足导致出现问题,可能是因为服务器运行时间过长。
解决办法1: 重启服务器,可以临时解决(亲测可用)
解决办法2:

  1. 通过cmd—>regedit进入注册表中进入HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
  2. 检查是否有MaxUserPort和TCPTimedWaitDelay这两个参数
  3. MaxUserPort为允许的TCP/IP最大连接数,范围在5000-65534,整到50000
  4. TCPTimedWaitDelay为超时自动断开时间,该项的缺省值是240,即等待4分钟后释放资源,系统支持的最小值为30,即等待时间为30秒
  5. 如果注册表中没有这两项,需要新建DWORD 类型,命名为:MaxUserPort,值选择10进制输入50000。新建DWORD 类型,命名为:TCPTimedWaitDelay,值选择10进制输入4,表示TIME_WAIT的自动断开时间,默认为4分钟。
  6. 设置完毕后启动tomcat能正常启动了。但TIME_WAIT数量并没有少。此问题可以通过重启服务器解决,重启以后就会按照注册表里的配置来调整TIME_WAIT事件了。
    (未亲测)

由于大量的TIME_WAIT连接未被释放,出现了缓冲区空间不足的问题,导致其他应用在启动时已经无缓存可用,即出现了应用无法启动的故障在控制台打印了org.apache.tomcat.jni.Error: 730055,重启服务器是治标不治本的方法,未能从根本解决问题。重启后一开始也许是正常,随着服务器时长,问题仍然会出现。出现类似的问题首先需要查看是否存在大量WAIT_TIME事件。如果有需要查看配置表是否有MaxUserPort和TCPTimedWaitDelay这两个参数。在根据实际情况选择是新建还是修改参数值。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值