`

MSSQL导致java.net.BindException异常的解决方法

    博客分类:
  • java
阅读更多

昨天同事写了一个程序,使用jdbc频繁访问数据库,导致MSSQL导致java.net.BindException: Address already in use: connect,这是由于connection.close的时候,底层的socket不会立即关闭而是等待time_wait的时间,

 

当大量创建连接,然后再关闭的时候很容易出现这个问题:

 

今天帮其解决了,解决办法是:打开端口上线,65535和连接断开等待时间

 

开启端口上线和连接等待时间方法:原文

 

 

需要对注册表做如下配置:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
下添加项
1)MaxUserPort 
缺省是5000 (十进制)
可以设置为最大65535 (十进制)
端口。
2)TcpTimedWaitDelay
缺省是240 (十进制)
可以设置为最小30 (十进制)
重启计算机


(TcpTimedWaitDelay描述:确定 TCP/IP 可释放已关闭连接并重用其资源前,必须经过的时间。关闭和释放之间的此时间间隔通称 TIME_WAIT 状态或两倍最大段生命周期(2MSL)状态。此时间期间,重新打开到客户机和服务器的连接的成本少于建立新连接。减少此条目的值允许 TCP/IP 更快地释放已关闭的连接,为新连接提供更多资源。如果运行的应用程序需要快速释放和创建新连接,而且由于 TIME_WAIT 中存在很多连接,导致低吞吐量,则调整此参数。 如何查看或设置: 使用 regedit 命令访问 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键并创建名为 TcpTimedWaitDelay 的新 REG_DWORD 值。 将此值设置为十进制 30,其为十六进制 0x0000001e。该值将等待时间设置为 30 秒。 停止并重新启动系统。缺省值:0xF0,它将等待时间设置为 240 秒(4 分钟)。 建议值:最小值为 0x1E,它将等待时间设置为 30 秒。

MaxUserPort 描述:确定在应用程序从系统请求可用用户端口时,TCP/IP 可指定的最高端口号。 如何查看或设置: 使用 regedit 命令访问 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键并创建名为 MaxUserPort 的新 REG_DWORD 值。停止并重新启动系统。 缺省值:无 建议值:至少十进制 32768。)

0
1
分享到:
评论

相关推荐

    解决jvmjava.net.BindException: Address already in use: JVM_Bind异常

    总的来说,`java.net.BindException: Address already in use: JVM_Bind`异常是由于网络资源的并发控制问题导致的。理解这个异常的原因并采取相应的解决方案,可以帮助开发者顺利地启动和运行Java应用程序。在日常...

    java.net.BindException: Address already in use: JVM_Bind :8088(端口冲突)

    在myeclipse中将html文件改成jsp文件时myeclipse卡住;将之前的任务关掉;再打开时多次部署项目的时候报错

    Android 中出现java.net.BindException: bind failed: EADDRINUSE 问题解决办法

    首先,我们需要理解`java.net.BindException`这个异常。它是由Java的`DatagramSocket`类在尝试绑定到本地地址和端口时抛出的,如果指定的端口已被其他服务或应用占用,就会出现`EADDRINUSE`错误。在Android系统中,...

    解除Windows系统对JMeter压测工具连接数限制

    使用JMeter压测时,报java.net.bindexception:address already is use:connect异常,可执行本资源的.bat文件,修改系统注册表。

    启动tomcat时 错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099的解决办法

    nested exception is: java.net.BindException: Address already in use: JVM_Bind  这里说的是1099端口被其它进程占用了. 二.解决办法  找出占用1099端口的进程,进入windows命令,查看什么进程占用了1099端口...

    jemeter压测数据库

    jemeter 最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。 jemeter 可对服务器、网络或对象...

    Java Socket常见异常处理

    1. **java.net.BindException: Address already in use: JVM_Bind** 这个异常表明尝试绑定的端口已被其他服务占用。解决方法是检查并更改端口号,选择一个未被使用的端口。使用`netstat -an`命令可以帮助识别哪些...

    卸载工具007

    它能够深入扫描系统,找出那些隐藏的、不易被发现的软件残留,确保在卸载后系统保持整洁,避免因残留文件占用磁盘空间,甚至可能导致冲突或系统不稳定的问题。 "Uninstall Tool汉化绿色版_3987.com"是这个压缩包内...

    Java Netty异常分析BindException.pdf

    ### Java Netty 异常分析:BindException 在开发基于Java Netty的应用程序时,可能会遇到`java.net.BindException: Address already in use: no further information`这类错误。本篇文章将详细解析这一异常的原因、...

    Socket长连接异常处理

    java.net.BindException: Address already in use 该异常发生在服务器端进行 new ServerSocket(port) 操作时,原因是因为与 port 相同的端口已经被占用,解决方法是找到一个空闲的端口。 java.net....

    一般异常问题

    端口冲突java.net.BindException: Address already in use: JVM_Bind java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory deploy(部署)项目。点击 deploy 按钮,在弹出的Project Deployments...

    javaerror处理资料

    java.net.BindException: Address already in use: JVM_Bind 当尝试通过`new ServerSocket(port)`创建一个服务器套接字,并指定端口号`port`(该值应在0到65536之间)时,如果出现此异常,表明所指定的端口已被...

    hadoop hbase 错误日志级解决

    2,localhost: java.net.BindException: Address already in use 3,ERROR: org.apache.hadoop.hbase.MasterNotRunningException: Retried 7 times 4,ERROR: org.apache.hadoop.hbase.MasterNotRunningException: ...

    tomcat启动的错误

    #### 错误描述:“Could not load com.mysql.jdbc.Messages Could not load java.net.BindException MySQL JDBC应放置于WEB-INF\lib目录,此时只需将%TOMCAT_HOME%\lib中的文件复制到WEB-INF\lib。异常跨越MySQL库从...

    Tomcat 启动错误(8080端口被占用)处理方法

    错误描述: 2009-7-12 15:40:35 org.apache.coyote.http11.Http11BaseProtocol start 严重: Error starting endpoint java.net.BindException: Address already in use: JVM_Bind:8080 at org.apache.tomcat.util...

    activemq服务无法正常启动.docx

    Reason: java.io.IOException: Transport Connector could not be registered in JMX: Failed to bind to server socket: tcp://0.0.0.0:61616 due to java.net.BindException: Address already in use: JVM_Bind”...

    如何根据Wowza服务器日志中的出错信息进行故障排查

    vhost WARN 200 - _defaultVHost_Bind failed, try again ([any]:1935): java.net.BindException: Address already in use ``` **原因分析:** 该错误通常发生在同一台服务器上有多个WowzaMediaServer实例同时运行...

    错误总结.doc

    4. **java.net.BindException: Address already in use: JVM_Bind**:这意味着8080端口已被其他服务占用。你可以通过修改Tomcat配置文件`server.xml`来改变Tomcat的默认端口,如示例所示,将端口改为80或其他未使用...

    基于spring boot 日志(logback)报错的解决方式

    "No converter found capable of converting from type [java.lang.String] to type [java.util.Map<java.lang.String,java.lang.String>] org.springframework.boot.context.properties.bind.BindException:...

Global site tag (gtag.js) - Google Analytics