我目前正在开发一个最初不是为高负载而构建的项目。
我的问题是,在压力测试期间的某个时刻(30个用户),应用程序似乎“卡住了”,当它发布时它会吐出很多异常。 Unable to get managed connection for [MY_DS]
当我只运行一个用户时,它就像一个魅力,因此它与并发性有关。 我还检查了在一次运行结束时是否有任何未闭合的数据库连接,并且没有,所以在正常使用情况下,没有连接泄漏。
我怀疑我的开放和关闭方法(因为它们是静态的)。以下是方法:
public static Connection getConnection() {
if (logger.isDebugEnabled()) logger.debugLog("getConnection()");
try {
return DSUtils.getDefaultDataSource().getConnection();
} catch (SQLException se) {
logger.errorLog("SQLException", se);
throw new ApplicationRuntimeException(MessageCodesConstants.ERROR_SQL_EXCEPTION, se);
}
}
public static void closeConnection(Connection con) {
if (logger.isDebugEnabled()) logger.debugLog("closeConnection");
try {
if (con != null) {
con.close();
}
} catch (SQLException se) {
logger.warnLog("SQLException while closing connection");
}
}
这是一个在SQL Server 2008备份的JBoss EAP 6.2.0上运行的EE应用程序。
有人能指出我正确的方向找出解决方案的位置吗?