Hibernate и mysql проблема тайм-аута
У меня возникли проблемы с ошибкой тайм-аута Hibernate и Mysql. Я также использую свойства c3p0(провайдера соединений). После того, как мой Hibernate/MySQL был запущен через 8 часов (это значение тайм-аута по умолчанию в Mysql), у меня есть исключение. Но это не помогает.
свойство для автоматического переподключения тоже не работает.
Вот моя Конфигурация Hibernate:
<property name="connection_provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
**<property name="connection.autoReconnect"> true</property>
<property name="connection.autoReconnectForPools">true</property>**
<property name="connection.is-connection-validation-required">true</property>
<property name="c3p0.validate">true</property>
<property name="current_session_context_class">thread</property>
<property name="cache.use_query_cache">false</property>
<property name="cache.use_second_level_cache">false</property>
<property name="c3p0.idle_test_period">20</property>
<property name="c3p0.timeout">40</property>
<property name="c3p0.max_size">100</property>
<property name="c3p0.min_size">1</property>
<property name="c3p0.acquireRetryAttempts">10</property>
<property name="c3p0.maxPoolSize">100</property>
<property name="c3p0.maxIdleTime">300</property>
<property name="c3p0.maxStatements">50</property>
<property name="c3p0.minPoolSize">10</property>
<property name="c3p0.preferredTestQuery">select 1;</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/doqeap</property>
<property name="connection.user">root</property>
<property name="connection.password">*******</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.jdbc.batch_size">0</property>
<mapping></mapping>
Пожалуйста, помогите мне разобраться с этой проблемой. Спасибо
1 ответ
Если тайм-аут соединения является проблемой, то тестирование соединения должно быть устранено, увядая с помощью проверок проверки (надежно, но требует видимых затрат на производительность клиента) или проверок проверки + простоя.
Глядя на ваши параметры конфигурации, похоже, что вы хотите настроить тесты на проверки и холостые тесты. Я ожидаю, что c3p0 устранит исключения по тайм-ауту до того, как ваше приложение увидит их. Если этого не произошло, было бы интересно увидеть две вещи: 1) Конфигурация c3p0, которая регистрируется в INFO при инициализации пула - это c3p0, через уровень гибернации, видя конфигурацию, которую вы намереваетесь? 2) Исключение, которое получает ваше приложение, когда оно обнаруживает устаревшие соединения.
Удачи!