我有一个使用多线程进程的Web应用程序,每个进程都打开与MYSQL的连接,如下代码:
Class.forName("com.mysql.jdbc.Driver").newInstance();
this.conn = DriverManager.getConnection("jdbc:mysql://" + SQL.host + "/" + SQL.database + "?user=" + SQL.username + "&password=" + SQL.password);
我们设置了mysql max-connection = 10000。
有时我们会为每个多线程进程收到此错误:
sun.reflect.NativeConstructorAccessorImpl.newInstance0(原生方法) sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) java.lang.reflect.Constructor.newInstance(Constructor.java:423) com.mysql.jdbc.Util.handleNewInstance(Util.java:425) com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:989) com.mysql.jdbc.MysqlIO。(MysqlIO.java:341) com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2251) com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2284) com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2083) com.mysql.jdbc.ConnectionImpl。(ConnectionImpl.java:806) com.mysql.jdbc.JDBC4Connection。(JDBC4Connection.java:47) sun.reflect.GeneratedConstructorAccessor147.newInstance(未知 资源) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) java.lang.reflect.Constructor.newInstance(Constructor.java:423) com.mysql.jdbc.Util.handleNewInstance(Util.java:425) com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:410) com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:328) java.sql.DriverManager.getConnection(DriverManager.java:664) java.sql.DriverManager.getConnection(DriverManager.java:270) MySQL.SQL(SQL.java:37) SMS.ProccessSMSMessages.processMessage(ProccessSMSMessages.java:26) SMS.StaticData $ 1.OnWorker(StaticData.java:93) Utility.TimerWorker $ 1.run(TimerWorker.java:58) java.util.TimerThread.mainLoop(Timer.java:555) java.util.TimerThread.run(Timer.java:505)通信链路故障 成功发送到服务器的最后一个数据包是0毫秒 前。驱动程序未收到来自服务器的任何数据包。 通信链路故障最后一个数据包成功发送到 服务器是0毫秒前。驱动程序没有收到任何数据包 来自服务器。