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) Исключение, которое получает ваше приложение, когда оно обнаруживает устаревшие соединения.

Удачи!

Другие вопросы по тегам