67,513
社区成员
发帖
与我相关
我的任务
分享
// 连接池中连接的个数
private static final int POOL_COUNT = 400;
private static final String DB_STR = ResourceReader.getStr("db_url");
private static final String DB_DRIVER = "com.mysql.jdbc.Driver";
private static DataSource ds = null;
/**
* 初始化连接池
*
* @return
*/
public static boolean initPool() {
try {
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDriverClass(DB_DRIVER); // loads the jdbc
// driver
cpds.setJdbcUrl(DB_STR);
cpds.setMaxPoolSize(POOL_COUNT);
cpds.setMinPoolSize(25);
cpds.setInitialPoolSize(50);
cpds.setMaxIdleTime(25000);
cpds.setIdleConnectionTestPeriod(18000);
cpds.setTestConnectionOnCheckout(true);
cpds.setTestConnectionOnCheckin(true);
cpds.setMaxStatementsPerConnection(0);
ds = cpds;
Connection conn = ds.getConnection();
if (conn != null) {
conn.close();
return true;
}
} catch (Exception ex) {
LogUtil.logErr(ex);
}
return false;
}
/**
* 获得数据库连接
*
* @return
* @throws SQLException
*/
public synchronized static Connection getConnection() throws SQLException {
return ds.getConnection();
}
/**
* 关闭所有链接
*
* @param conn
* @param pstmt
* @param rs
*/
public synchronized static void closeAll(Connection conn,
PreparedStatement pstmt, ResultSet rs) {
try {
if (rs != null)
rs.close();
if (pstmt != null)
pstmt.close();
if (conn != null) {
conn.close();
}
} catch (Exception ex) {
conn = null;
LogUtil.logErr(ex);
} finally {
try {
if (pstmt != null)
pstmt.close();
if (conn != null) {
conn.close();
}
} catch (Exception ex) {
LogUtil.logErr(ex);
} finally {
try {
if (conn != null)
conn.close();
} catch (Exception ex2) {
LogUtil.logErr(ex2);
} finally {
conn = null;
}
}
}
}
** END NESTED EXCEPTION **
Last packet sent to the server was 0 ms ago.
STACKTRACE:
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.io.EOFException
STACKTRACE:
java.io.EOFException
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1956)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2368)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2867)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1616)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1708)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3178)
at com.mysql.jdbc.Statement.executeQuery(Statement.java:1203)
at net.btdz.oa.projectmanager.ProjectStageBaseManager.getArrayBySql(ProjectStageBaseManager.java:273)
at net.btdz.oa.projectmanager.ProjectSendAlarm.readAlarmList(ProjectSendAlarm.java:229)
at net.btdz.oa.projectmanager.ProjectSendAlarm.reloadAlarmInfo(ProjectSendAlarm.java:250)
at net.btdz.oa.projectmanager.ProjectSendAlarm.defineProc(ProjectSendAlarm.java:261)
at net.btdz.oa.common.doSQLProc.doProc(doSQLProc.java:43)
at net.btdz.oa.person.Btoa_eventFinder.doProjStageAndAlarm(Btoa_eventFinder.java:3660)
at net.btdz.oa.person.Btoa_eventFinder.findAndAlarm(Btoa_eventFinder.java:3633)
at www.seeyon.com.crimsist.other.TAlarmSchedule.doit(TAlarmSchedule.java:41)
at www.seeyon.com.crimsist.common.TOAScheduleMgr$TScheduleItem.doItem(TOAScheduleMgr.java:74)
at www.seeyon.com.crimsist.common.TOAScheduleMgr$TScheduleItem.access$100(TOAScheduleMgr.java:53)
at www.seeyon.com.crimsist.common.TOAScheduleMgr$TOAScheduleRunThread.run(TOAScheduleMgr.java:24)
** END NESTED EXCEPTION **
Last packet sent to the server was 0 ms ago.
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2579)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2867)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1616)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1708)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3178)
at com.mysql.jdbc.Statement.executeQuery(Statement.java:1203)
at net.btdz.oa.projectmanager.ProjectStageBaseManager.getArrayBySql(ProjectStageBaseManager.java:273)
at net.btdz.oa.projectmanager.ProjectSendAlarm.readAlarmList(ProjectSendAlarm.java:229)
at net.btdz.oa.projectmanager.ProjectSendAlarm.reloadAlarmInfo(ProjectSendAlarm.java:250)
at net.btdz.oa.projectmanager.ProjectSendAlarm.defineProc(ProjectSendAlarm.java:261)
at net.btdz.oa.common.doSQLProc.doProc(doSQLProc.java:43)
at net.btdz.oa.person.Btoa_eventFinder.doProjStageAndAlarm(Btoa_eventFinder.java:3660)
at net.btdz.oa.person.Btoa_eventFinder.findAndAlarm(Btoa_eventFinder.java:3633)
at www.seeyon.com.crimsist.other.TAlarmSchedule.doit(TAlarmSchedule.java:41)
at www.seeyon.com.crimsist.common.TOAScheduleMgr$TScheduleItem.doItem(TOAScheduleMgr.java:74)
at www.seeyon.com.crimsist.common.TOAScheduleMgr$TScheduleItem.access$100(TOAScheduleMgr.java:53)
at www.seeyon.com.crimsist.common.TOAScheduleMgr$TOAScheduleRunThread.run(TOAScheduleMgr.java:24)
** END NESTED EXCEPTION **
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:888)
at com.mysql.jdbc.Connection.checkClosed(Connection.java:1931)
at com.mysql.jdbc.Connection.createStatement(Connection.java:3093)
at com.mysql.jdbc.Connection.createStatement(Connection.java:3075)
at www.seeyon.com.crimsist.TOAConProvider$TprvmyConnection.createStatement(TOAConProvider.java:472)
at net.btdz.oa.common.doSQLProc.doProc(doSQLProc.java:42)
at net.btdz.oa.person.Btoa_eventFinder.doAssessNodeAndAlarm(Btoa_eventFinder.java:3692)
at net.btdz.oa.person.Btoa_eventFinder.findAndAlarm(Btoa_eventFinder.java:3634)
at www.seeyon.com.crimsist.other.TAlarmSchedule.doit(TAlarmSchedule.java:41)
at www.seeyon.com.crimsist.common.TOAScheduleMgr$TScheduleItem.doItem(TOAScheduleMgr.java:74)
at www.seeyon.com.crimsist.common.TOAScheduleMgr$TScheduleItem.access$100(TOAScheduleMgr.java:53)
at www.seeyon.com.crimsist.common.TOAScheduleMgr$TOAScheduleRunThread.run(TOAScheduleMgr.java:24)
cpds.setIdleConnectionTestPeriod(18000);
cpds.setTestConnectionOnCheckout(true);
cpds.setTestConnectionOnCheckin(true);
-------------------------------->
cpds.setIdleConnectionTestPeriod(60);
//cpds.setTestConnectionOnCheckout(true);
//cpds.setTestConnectionOnCheckin(true);