java异常及解决方法.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java异常及解决方法

java异常及解决方法1:.BindException: Address already in use解决方法在网络编程中,特别是在短时间内new的网络连接太多,经常出现.BindException: Address already in use: JVM_Bind的异常,网络有很多介绍此异常的,通常都是在说是要使用的端口被别的程序已经使用,但有时并不是这个原因,通过仔细查找,找到一些很好的资料,在此将其一一记录下来。M mw0IB.Y S2ND短时间内new socket操作过多而socket.close()操作并不能立即释放绑定的端口而是把端口设置为TIME_WAIT状态过段时间(默认240s)才释放(用netstat -na可以看到)最后系统资源耗尽(windows上是耗尽了pool of ephemeral ports 这段区间在1024-5000之间)Socket/VX#oS$P*t!l-W]/lRemember that TCP guarantees all data transmitted will be delivered,lif at all possible. When you close a socket, the server goes into aapufL },sVRTIME_WAIT state, just to be really really sure that all the data hasq/P)f9Gv`s0igone through. When a socket is closed, both sides agree by sendingmessages to each other that they will send no more data. This, itSseemed to me was good enough, and after the handshaking is done, thesocket should be closed. The problem is two-fold. First, there is no2:.BindException: Address already in use: connect的问题)`X/l^D*TW\_大概原因是短时间内new socket操作很多,而socket.close()操作并不能立即释放绑定的端口,而是把端口设置为TIME_WAIT状态,过段时间(默认240s)才释放,(用netstat -na可以看到),最后系统资源耗尽(windows上是耗尽了pool of ephemeral ports ,这段区间在1024-5000之间; )l#|g(p@yq k避免出现这一问题的方法有两个,一个是调高你的web服务器的最大连接线程数,调到1024,2048都还凑合,以resin为例,修改resin.conf中的thread-pool.thread_max,如果你采用apache连resin的架构,别忘了再调整apache;]9hu\ tR c0w另一个是修改运行web服务器的机器的操作系统网络配置,把time wait的时间调低一些,比如30s。在red hat上,查看有关的选项,[xxx@xxx~]$ /sbin/sysctl -a|grep net.ipv4.tcp_twnet.ipv4.tcp_tw_reuse = 0m5SLV*k#SM7ajnet.ipv4.tcp_tw_recycle = 0yg:i+RKj2r[xxx@xxx~]$vi /etc/sysctl,修改A2O+Hx ?5^tF Pnet.ipv4.tcp_tw_reuse = 1$_zuz9g dynet.ipv4.tcp_tw_recycle = 1y+_Fq$BC;f[xxx@xxx~]$sysctl -p,使内核参数生效socket-faq中的这一段讲time_wait的,摘录如下:中博IT教育网`.J0[0VE;m\-\ } y2.7. Please explain the TIME_WAIT state.Jfpo8``w(`9K?NP;tS7Z8^ CRemember that TCP guarantees all data transmitted will be delivered,3:当您尝试从 TCP 端口大于 5000 连接收到错误 WSAENOBUFS (10055) 症状如果您尝试建立 TCP 连接从端口是大于 5000, 本地计算机响应并以下 WSAENOBUFS (10055)错误信息:I3C{9j{ {Jx因为系统缺乏足够缓冲区空间或者因为队列已满无法执行套接字上操作。要点此部分,方法或任务包含步骤告诉您如何修改注册表

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档