看是怎么获得session的。 方法1: 通过配置监听器后,在Dao中用getCurrentSession获取,此时无需管理session的关闭与否; 方法2: 在Dao中通过getSession获取,使用后必须关闭session。 不关闭session的后果是,随着系统的运行,数据库连接数将逐渐增多,最终导致数据库拒绝连接。 数据库拒绝连接后,重新启动应用,原有连接将释放,此时应用又可正常运行。 如果发现应用存在连接未释放问题而一时半会又不能正确定位时,可通过定时触发的计划任务,重新启动应用,保证应用在一定程度上可用。 如果数据库是db2,那么可能还需要重新启动数据库所在的服务器(操作系统)。
一直使用方法2,会不会造成过多服务器开销
(1.现在系统有时候突然就慢下来了,过了一会又好了)
(2,也有同事的系统未关闭session,却没有慢和拒绝连接的问题)