会话关闭防火墙服务器端

时间:2019-02-05 14:39:29

标签: hibernate c3p0

我有一个与mysql数据库交互的Web服务,我使用Hibernate进行数据访问。在生产环境中,我发现数据库服务器在经过一定时间(30分钟)后在其一侧关闭了连接,导致我的应用程序中出现此错误: org.hibernate.SessionException: Session is closed!。 我决定使用hibernate.c3p0,并将这些属性添加到hibernate.cfg.xml中:

    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://xxxxx:xx/xx</property>
    <property name="hibernate.connection.username">xxxx</property>
    <property name="hibernate.connection.password">xxxx</property>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
    <property name="show_sql">true</property>

    <property name="hibernate.c3p0.acquire_increment">1</property> 
    <property name="hibernate.c3p0.idle_test_period">10</property>
    <property name="hibernate.c3p0.max_size">100</property> 
    <property name="hibernate.c3p0.max_statements">100</property>           
    <property name="hibernate.c3p0.min_size">10</property> 
    <property name="hibernate.c3p0.timeout">15</property>
    <property name="c3p0.preferredTestQuery">select 1;</property>

要在localhost中测试这些属性,我在数据库中创建了一个名为testCnx的新表,其中包含一列,并插入了一个value = 1,然后将idle_test_period的值更改为10秒,timeout至15秒,preferredTestQueryupdate testCnx set id=2 where id=1;。 调用Web服务后,我等待了2分钟以上,但表中的值没有变化。我想知道hibernate.c3p0是否是解决此问题的好方法

谢谢您的时间!

0 个答案:

没有答案