我正在使用Hibernate和Spring MVC开展web项目。 我的休眠配置是:
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/xxx</property>
<property name="connection.username">xxx</property>
<property name="connection.password">xxx</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">1800</property>\<property name="hibernate.c3p0.max_statements">50</property>
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="connection.useUnicode">true</property>
<property name="connection.characterEncoding">UTF-8</property>
<property name="current_session_context_class">thread</property>
<property name="show_sql">true</property>
hibernate会话在服务类析构函数中关闭(这些服务类具有DAO对象)。但是在生产服务器上发布后,我从mysql.Every服务器调用得到了太多连接异常,mysql连接被打开了。当连接数量变为101-db失败时。我认为析构函数没有时间执行所以连接一直打开。 然后,我重建了结构。现在,Spring控制器调用服务类函数,该函数释放会话mannualy。但它没有帮助:连接仍然打开,现在我不能在视图中使用LAZY集合,因为会话已经关闭。 我该如何解决这个问题?这里的常用方法是什么? 谢谢。