我已经使用hibernate框架开发了企业应用程序。当用户数量激增时(当用户数超过200时)应用程序挂起。我尝试了以下方法,但问题仍然存在。
1)C3PO连接池(之前没有使用连接池)
2)将休眠连接池大小增加到300(值100之前)
3) 将 getCurrentSession 方法更改为 openSession
hibernate.cfg.xml 文件有 connection.pool_size=300
大多数应用程序查询都使用此方法调用 -
@覆盖
公共列表getLovServiceSqlParam(字符串查询,对象[] obj){
// TODO Auto-generated method stub
Session session = null;
if (this.getHibernateTemplate() != null && query != null
&& query.length() > 0) {
try
{
session = this.getHibernateTemplate().getSessionFactory().openSession();
SQLQuery query1 = session.createSQLQuery(query);
for(int i=0;i<obj.length;i++)
{
query1.setParameter(i, obj[i]);
}
result = query1.list();
session.close();
}
catch (DataAccessException e) {
e.printStackTrace();
throw e;
}
finally
{
if (session != null && session.isOpen()) {
session.close();
}
}
}
return result;
}