数据源拒绝建立连接,来自服务器的消息:“连接太多”? - 多线程

时间:2016-06-26 02:41:24

标签: java mysql multithreading

我遇到的问题是我的应用程序在任何时候都运行了300-400个线程。所以我有一些问题,我连接到mysql数据库,它随时抛出异常"数据源拒绝建立连接,来自服务器的消息:“连接太多”? &#34 ;.
我检查并确保以正确的方式关闭所有连接,我已连接到db。
为了处理这种方法,我写了一个方法,但我不确定这是否是正确的方法。此方法已用于所有线程以获取数据库连接。 我应该更改方法还是应该添加同步到此,我不知道如何处理此异常

    public static Connection getDatabaseConnection(){
    try{
        return  (Connection)DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306xxx?useUnicode=true"
                + "&characterEncoding=utf-8", "root", "xxx");
    }catch(SQLException ex){
        Util.sleep(new Random().nextInt(1000));// Equals = Thread.sleep(...);
        return getDatabaseConnection();
    }

}

1 个答案:

答案 0 :(得分:1)

您正在为每个线程创建数据库连接。处理此问题的更好方法是创建连接池或单例类以访问db。我找到了一个旧页面来实现这一目标:http://rdeshapriya.com/a-singleton-java-class-for-mysql-db-connection/