ArrayList<Connection> dbConns = new ArrayList<Connection>();;
try {
Class.forName(JDriver).newInstance();
for (int i = 0; i < 10; i++){
System.out.print ("获取连接 ["+i+"]");
Connection dbConn = DriverManager.getConnection (dbURL, userName, userPwd);
System.out.println(dbConn.getMetaData().getURL());
dbConns.add(dbConn);
}
} catch (Exception e) {
e.printStackTrace ();
} finally {
try {
for (int i = 0, len = dbConns.size (); i < len; i++){
System.out.println ("释放连接 ["+i+"]");
Connection dbConn = dbConns.get(i);
if (dbConn != null) dbConn.close();
}
} catch (SQLException e) {
e.printStackTrace ();
}
}
每次都是能获取到一个连接,但在取第二个连接时报错:
------------------------------------------------------------------------------------------------------------------------
获取连接 [0] jdbc:sqlserver://jxajyhxt.sqlserver.rds.aliyuncs.com:3433;responseBuffering=adaptive;encrypt=false;databaseName=jxaj1;selectMethod=direct;trustServerCertificate=false;applicationName=Microsoft SQL Server JDBC Driver;lastUpdateCount=true;
获取连接 [1] com.microsoft.sqlserver.jdbc.SQLServerException: The connection to the host R8IC01361, named instance MS3022 has failed. Error: java.net.UnknownHostException: R8IC01361. Please verify the server and instance names, check that no firewall is blocking UDP traffic to port 1434, and for SQL Server 2005 or later, verify that the SQL Server Browser service is running on the host.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:130)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.getInstancePort(SQLServerConnection.java:3090)
at com.microsoft.sqlserver.jdbc.FailoverInfo.setupInfo(FailOverInfo.java:59)
at com.microsoft.sqlserver.jdbc.FailoverInfo.failoverPermissionCheck(FailOverInfo.java:85)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithFailover(SQLServerConnection.java:812)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:763)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.topinfo.jxaj.test.DbTest.getConnectionSqlServer(DbTest.java:28)
at com.topinfo.jxaj.test.DbTest.main(DbTest.java:64)
释放连接 [0]
------------------------------------------------------------------------------------------------
跟连接池报的错误一致。解析出的host: R8IC01361 是机器名还是....