开发者社区> 问答> 正文

求助RDSSQLServer2008JAVADBCP连接池问题

应用中使用DBCP连接池,线下环境部署运行正常,但迁移到云上后就抛连接获取错误。
于是写了个测试

        String JDriver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
        String dbURL = "jdbc:sqlserver://jxajyhxt.sqlserver.rds.aliyuncs.com:3433;databasename=jxaj1";
        String userName = "**"; // 用户名
        String userPwd = "******"; // 密码


        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  是机器名还是....


谁能帮助一下,万分感谢!



展开
收起
icepoint 2015-08-13 15:32:55 9644 0
2 条回答
写回答
取消 提交回答
  • 长期在电子商务行业从事SQL Server的设计,开发与维护,拥有10年的相关经验,擅长数据库的架构与设计,擅长数据库的性能优化,擅长数据库的自动化和智能化运维,从2014年开始, 在云计算领域坚持奋斗, 阿里云SQL Server系列产品的设计与规划者
    这个是JDBC驱动的问题,已经有很多用户遇到过,你换一下驱动就好了。
    2015-08-18 11:30:49
    赞同 展开评论 打赏
  • 一个程序员,欢迎骚扰!!!
    楼主Java项目中配置的连接池大小是多少?
    2015-08-14 20:06:45
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载