java异常及解决方法 (2)

java异常及解决方法1:java.net.BindException:Addressalreadyinuse解决方法在网络编程中,特别是在短时间内new的网络连接太多,经常出现java.net.BindException:Addressalreadyinuse:JVM_Bind的异常,网络有很多介绍此异常的,通常都是在说是要使用的端口被别的程序已经使用,但有时并不是这个原因,通过仔细查找,找到一些很好的资料,在此将其一一记录下来。短时间内newsocket操作过多而socket.close()操作并不能立即释放绑定的端口而是把端口设置为TIME_WAIT状态过段时间(默认240s)才释放(用netstat-na可以看到)最后系统资源耗尽(windows上是耗尽了poolofephemeralports这段区间在1024-5000之间)SocketRememberthatTCPguaranteesalldatatransmittedwillbedelivered,ifatallpossible.Whenyoucloseasocket,theservergoesintoaTIME_WAITstate,justtobereallyreallysurethatallthedatahasgonethrough.Whenasocketisclosed,bothsidesagreebysendingmessagestoeachotherthattheywillsendnomoredata.This,itseemedtomewasgoodenough,andafterthehandshakingisdone,thesocketshouldbeclosed.Theproblemistwo-fold.First,thereisno2:java.net.BindException:Addressalreadyinuse:connect的问题大概原因是短时间内newsocket操作很多,而socket.close()操作并不能立即释放绑定的端口,而是把端口设置为TIME_WAIT状态,过段时间(默认240s)才释放,(用netstat-na可以看到),最后系统资源耗尽(windows上是耗尽了poolofephemeralports,这段区间在1024-5000之间;)避免出现这一问题的方法有两个,一个是调高你的web服务器的最大连接线程数,调到1024,2048都还凑合,以resin为例,修改resin.conf中的thread-pool.thread_max,如果你采用apache连resin的架构,别忘了再调整apache;另一个是修改运行web服务器的机器的操作系统网络配置,把timewait的时间调低一些,比如30s。在redhat上,查看有关的选项,[xxx@xxx~]$/sbin/sysctl-a|grepnet.ipv4.tcp_twnet.ipv4.tcp_tw_reuse=0net.ipv4.tcp_tw_recycle=0[xxx@xxx~]$vi/etc/sysctl,修改net.ipv4.tcp_tw_reuse=1net.ipv4.tcp_tw_recycle=1[xxx@xxx~]$sysctl-p,使内核参数生效socket-faq中的这一段讲time_wait的,摘录如下:2.7.PleaseexplaintheTIME_WAITstate.RememberthatTCPguaranteesalldatatransmittedwillbedelivered,3:当您尝试从TCP端口大于5000连接收到错误'WSAENOBUFS(10055)'症状---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---如果您尝试建立TCP连接从端口是大于5000,本地计算机响应并以下WSAENOBUFS(10055)错误信息:因为系统缺乏足够缓冲区空间或者因为队列已满无法执行套接字上操作。要点此部分,方法或任务包含步骤告诉您如何修改注册表。但是,如果修改注册表错误可能发生严重问题。因此,确保仔细执行这些步骤。用于添加保护之前,修改备份注册表。然后,在发生问题时还原注册表。有关如何备份和还原注册表,请单击下列文章编号以查看Microsoft知识库中相应:默认最大数量的短暂TCP端口为5000'适用于'部分中包含产品中。这些产品中已添加新参数。要增加最大值是短暂端口,请按照下列步骤操作:1.启动注册表编辑器。2.注册表,中找到以下子项,然后单击参数:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters3.在编辑菜单,单击新建,然后添加以下注册表项:MaxUserPort值名称:值类型:DWORD值数据:65534有效范围:5000-65534(十进制)默认:0x13885000(十进制)说明:此参数控制程序从系统请求任何可用用户端口时所用最大端口数。通常,1024的值和含5000之间分配临时(短期)端口。4.退出注册表编辑器,并重新启动计算机。注意一个附加TCPTimedWaitDelay注册表参数决定多久关闭端口等待可以重用关闭端口。4:java.lang.OutOfMemoryError:JavaheapspaceHeapsize设置JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heapsize的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn-Xms-Xmx...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?