Сеанс закрытого брандмауэра на стороне сервера - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть веб-сервис, который взаимодействует с базой данных MySQL, я использовал 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, содержащую один столбец.и я вставляю значение = 1, и я изменил значение idle_test_period на 10 секунд, timeout на 15 секунд и preferredTestQuery на update testCnx set id=2 where id=1;.После вызова веб-службы я ждал более 2 минут, но значение в таблице не изменилось.Я хочу знать, является ли hibernate.c3p0 хорошим решением для этой проблемы

Спасибо за ваше время заранее!

...