原程序如下:public class test2 {public static void main(String[] args) throws ClassNotFoundException, SQLException
{
Class.forName("com.mysql.jdbc.Driver");
String DBUrl = "jdbc:"+Config.DBType+"://"+Config.DBHost+":"+Config.DBPort+"/"+Config.DBSchema+"?useUnicode=true&characterEncoding=GB2312&autoReconnect=true";
for(int i=0;i<10000;i++)
{
Connection conn = DriverManager.getConnection(DBUrl,Config.DBUser,Config.DBPassword);
System.out.println(i);
conn.close();
}
}
}输出结果为:0
1
2
...
4043
4044
4045(出现异常是i的值不固定,有时是几十,有时是几百)
Exception in thread "main" com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Server connection failure during transaction. Due to underlying exception: 'java.net.SocketException: java.net.BindException: Address already in use: connect'.** BEGIN NESTED EXCEPTION **java.net.SocketException
MESSAGE: java.net.BindException: Address already in use: connectSTACKTRACE: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:276)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2815)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at test2.main(test2.java:24)
** END NESTED EXCEPTION **
Attempted reconnect 3 times. Giving up.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:888)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2890)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at test2.main(test2.java:24)
请问这种问题如何解决??
{
Class.forName("com.mysql.jdbc.Driver");
String DBUrl = "jdbc:"+Config.DBType+"://"+Config.DBHost+":"+Config.DBPort+"/"+Config.DBSchema+"?useUnicode=true&characterEncoding=GB2312&autoReconnect=true";
for(int i=0;i<10000;i++)
{
Connection conn = DriverManager.getConnection(DBUrl,Config.DBUser,Config.DBPassword);
System.out.println(i);
conn.close();
}
}
}输出结果为:0
1
2
...
4043
4044
4045(出现异常是i的值不固定,有时是几十,有时是几百)
Exception in thread "main" com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Server connection failure during transaction. Due to underlying exception: 'java.net.SocketException: java.net.BindException: Address already in use: connect'.** BEGIN NESTED EXCEPTION **java.net.SocketException
MESSAGE: java.net.BindException: Address already in use: connectSTACKTRACE: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:276)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2815)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at test2.main(test2.java:24)
** END NESTED EXCEPTION **
Attempted reconnect 3 times. Giving up.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:888)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2890)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at test2.main(test2.java:24)
请问这种问题如何解决??
解决方案 »
- QT跟数据库的连接问题
- asp.net 连接 postgresql 数据库出错! Timeout while getting a connection from pool.
- mysql的关联查询问题,
- mySQL 中 Intersect的使用
- 数据库查询的问题
- 紧急!!救救我!我已经安装mysql,在mysql>命令下可以建立数据库了,怎么样在delphi中连接???(全力给分)
- 怎么让数据库字段实现类似队列的功能.
- 如何把MYSQL的ROOT密码修改?
- sql 综合排序 如何实现 比较特殊的案例
- 数据库mysql访问页面超慢
- 急求``加载脚本``怎么写`在MySQL Command Line Client中
- pgsql中tsearch2的问题
改进客户端代码,减少连接数量(推荐方法)
增加服务器连接数
如果没有特殊需要,
一个程序享用一个数数据库连接就已经足够了。跟数据库建立连接是非常耗费资源的,
Java抛出这样例外是因为可连接的数据库资源已经耗尽