java.net.SocketException: java.net.BindException: Address already in use
来源:互联网 发布:徐老师淘宝店衣服 编辑:程序博客网 时间:2024/06/05 01:52
** BEGIN NESTED EXCEPTION **
java.net.SocketException
MESSAGE: java.net.BindException: Address already in use: connect
STACKTRACE:
java.net.SocketException: java.net.BindException: Address already in use: connect
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2555)
at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.saic.projectlewis.harvester.DbConnector.getConnection(DbConnector.java:39)
at com.saic.projectlewis.harvester.HarvesterToDb.checkHash(HarvesterToDb.java:307)
at com.saic.projectlewis.harvester.HarvesterToDb.jobFileCollected(HarvesterToDb.java:246)
at com.bat.harvester.ProcessorThread.a(Unknown Source)
at com.bat.harvester.ProcessorThread.do(Unknown Source)
at com.bat.harvester.ProcessorThread.run(Unknown Source)
java.net.SocketException
MESSAGE: java.net.BindException: Address already in use: connect
STACKTRACE:
java.net.SocketException: java.net.BindException: Address already in use: connect
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2555)
at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.saic.projectlewis.harvester.DbConnector.getConnection(DbConnector.java:39)
at com.saic.projectlewis.harvester.HarvesterToDb.checkHash(HarvesterToDb.java:307)
at com.saic.projectlewis.harvester.HarvesterToDb.jobFileCollected(HarvesterToDb.java:246)
at com.bat.harvester.ProcessorThread.a(Unknown Source)
at com.bat.harvester.ProcessorThread.do(Unknown Source)
at com.bat.harvester.ProcessorThread.run(Unknown Source)
** END NESTED EXCEPTION **
短时间内new socket操作过多
而socket.close()操作并不能立即释放绑定的端口
而是把端口设置为TIME_WAIT状态
过段时间(默认240s)才释放(用netstat -na可以看到)
最后系统资源耗尽
(windows上是耗尽了pool of ephemeral ports 这段区间在1024-5000之间)
可以考虑增加端口数量来解决,不过你为何不考虑用Socket池呢?让一个Socket重复利用呢?
以下是修改方法
默认最大数量的短暂 TCP 端口为 5000 ' 适用于 ' 部分中包含产品中。 这些产品中已添加新参数。 要增加最大值是短暂端口, 请按照下列步骤操作:
1.
启动注册表编辑器。
2.
注册表, 中找到以下子项, 然后单击 参数 :
HKEY _ LOCAL _ MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
3.
在 编辑 菜单, 单击 新建 , 然后添加以下注册表项:
MaxUserPort 值名称:
值类型: DWORD
值数据: 65534
有效范围: 5000 - 65534 (十进制)
默认: 0x1388 5000 (十进制)
说明: 此参数控制程序从系统请求任何可用用户端口时所用最大端口数。 通常, 1024 的值和含 5000 之间分配临时 (短期) 端口。
4.
退出注册表编辑器, 并重新启动计算机。
注意 一个附加 TCPTimedWaitDelay 注册表参数决定多久关闭端口等待可以重用关闭端口。
0 0
- java.net.SocketException: java.net.BindException: Address already in use
- SocketException: java.net.BindException: Address already in use
- java.net.BindException: Address already in use
- java.net.BindException: Address already in use: JVM_Bind
- java.net.bindexception: Address already in use: JVM_Bind:8080
- java.net.BindException: Address already in use: JVM_Bind:8080 issue
- java.net.BindException: Address already in use: JVM_Bind:8080
- java.net.BindException: Address already in use: JVM_Bind:80
- java.net.BindException: Address already in use解决方法
- java.net.bindexception: address already in use: jvm_bind:8080
- java.net.bindexception: address already in use: jvm_bind:8080
- java.net.BindException: Address already in use: JVM_Bind的异常
- java.net.BindException: Address already in use: JVM_Bind :8080 解决方法
- java.net.BindException: Address already in use: JVM_Bind
- java.net.BindException: Address already in use: Cannot bind
- java.net.BindException: Address already in use: JVM_Bind
- tomcat报错java.net.BindException: Address already in use
- java.net.BindException: Address already in use:80 linux
- CoconutKit ios开发必备
- 归并排序 merge sort
- java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy0 implementing (解决)
- Linux网络管理员福利:Namp命令的29个实战例子
- [c++运用]-利用指针查看分配内存及后续连接的内存---ShinePans
- java.net.SocketException: java.net.BindException: Address already in use
- P次方数 英雄会 csdn 高校俱乐部
- hdu1251 统计难题(字典树)
- 数据结构复习笔记四:数组和广义表
- Working Practice-使用官方的实现
- OSX: 不要升级到ARD 3.7.1 Admin(续)
- 使用Maven运行Java main的3种方式
- c/c++小实验集(不断更新)
- 小游戏