No buffer space available (maximum connections reached?):

com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Server connection failure during transaction. Due to underlying exception: 'java.net.SocketException: No buffer space available (maximum connections reached?): connect'.

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: No buffer space available (maximum connections reached?): connect

STACKTRACE:

java.net.SocketException: No buffer space available (maximum connections reached?): connect


来自于mysql的一个异常,开始是怀疑是mysql的连接数问题。查了下是发现大量的close_wait的状态,应该是端口没用完了。

因此调了下mysql的连接数,第二是让调下TIME_WAIT状态的回收时间。这个时间默认是240S。如下:

一、my.ini里面加连接:max_connections=1000

二、修改Windows的参数:来源 www.pms.cc

1.启动注册表编辑器。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
2. 新建

值名称:MaxUserPort
值类型: DWORD
值数据: 65534(用十进制的方法写进去就可以,如果是十六进制,是FFFE,因为4个F是65535嘛)
有效范围: 5000 - 65534 (十进制)
默认: 0x1388 5000 (十进制)

3.新建

值名称:TCPTimedWaitDelay
值类型: DWORD
值数据: 0000001e(也就是30,不行可以用WINDOWS计算器,很方便,这个表示TIME_WAIT的秒数)


你可能感兴趣的:(mysql)