500 - org.hibernate.TransactionException: JDBC rollback failed

Could not roll back Hibernate transaction; nested exception is org.hibernate.TransactionException: JDBC rollback failed

Caused by: java.sql.SQLException: Couldn‘t perform the operation rollback: You can‘t perform any operations on this connection. It has been automatically closed by Proxool for some reason (see logs).

前几天打在服务器上的WEB项目第二天当我打开的时候就会报错,
显示如图所示:
技术分享




这里的找到的原因是线程池的问题,意思就是每天的一个时刻,就会有一种代理把你的数据库给关闭掉。
那么这里我处理的方法是配置文件:

找到:
hibernate.cfg.xml这个文件
然后修改器配置。
我修改的是这里:
<property name="hibernate.connection.provider_class">
		org.hibernate.connection.ProxoolConnectionProvider
		</property>
		<property name="hibernate.proxool.pool_alias">DBPool</property>
		<property name="hibernate.proxool.xml">proxool.xml</property>
		<property name="connection.autoReconnect">true</property>
		<property name="connection.autoReconnectForPools">true</property>
		<property name="connection.is-connection-validation-required">
		true
		</property> 
这样就可以了。我在网上还看到了另一种方就是:

<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>  
            <property name="c3p0.acquire_increment">1</property>  
             <property name="c3p0.idle_test_period">100</property>  
             <property name="c3p0.max_size">5</property>  
               <property name="c3p0.max_statements">0</property>  
             <property name="c3p0.min_size">2</property>  
             <property name="c3p0.timeout">90</property>  
  
             <property name="c3p0.idleConnectionTestPeriod ">18000</property>              
           <property name="c3p0.maxIdleTime">25000</property>           
           <property name="c3p0.testConnectionOnCheckout">true</property>  
也可以运行

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。