Ошибка «не удалось выполнить запрос» после 13 часов бездействия - PullRequest
0 голосов
/ 16 января 2012

У меня есть следующие настройки: JSP / Servlet => Уровень представления. Hibernate и OpenJPA => Уровень доступа к данным.

Для подключения к базе данных я добавляю информацию о конфигурации в файл «persistence.xml». Вот записи для файла "persistence.xml":

<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<property name="hibernate.connection.url" value="jdbc:mysql://xxx.xxx.xxx.xxx:xxxx/test?autoReconnect=true"/>
<property name="hibernate.connection.username" value="xxx"/>
<property name="hibernate.connection.password" value="xxx"/>
<property name="hibernate.generate_statistics" value="true"/>
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.OSCacheProvider"/>
<property name="hibernate.cache.use_second_level_cache" value="true"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.c3p0.min_size" value="5"/>
<property name="hibernate.c3p0.max_size" value="20"/>
<property name="hibernate.c3p0.timeout" value="1800"/>
<property name="hibernate.c3p0.max_statements" value="50"/>
<property name="hibernate.c3p0.idle_test_period" value="1800"/>
<property name="c3p0.idleConnectionTestPeriod" value="1810"/>

Я получаю org.hibernate.exception.JDBCConnectionException: could not execute query ошибку. После 13 или более часов бездействия. Эта ошибка не воспроизводится последовательно. Я не могу воспроизвести ошибку на моей тестовой установке, но эта ошибка появляется на производственном сервере.

Я искал на форуме некоторые записи, похожие на мою, но они не отвечают на мой вопрос. Ссылки:

Получение org.hibernate.exception.JDBCConnectionException: не удалось выполнить запрос даже через JNDI

Продолжайте получать org.hibernate.exception.JDBCConnectionException: не удалось выполнить запрос

Я что-то пропустил или что-то не так?

1 Ответ

0 голосов
/ 13 мая 2014

Для меня это была проблема версии c3p0.При использовании последней версии c3p0 проблема не наблюдалась.Кроме того, утечка некоторых соединений происходит, когда возникает исключение.Добавьте код освобождения соединения в работающий блок finally.

...