我正在开发一个通过 JPA 和 Hibernate 4.2.3 完成持久性的应用程序。一切都在第一刻正常工作。
但是,当您花费一定时间(在我的情况下是一天)应用程序时,会出现以下错误。
ERROR: Communications link failure
The last packet successfully received from the server was 259.217.434 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago.
Abaixo deixo meu persistence.xml...
<persistence-unit name="amh_sys" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/amh_sys" />
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="root"/>
<property name="hibernate.show_sql" value="false" />
<property name="hibernate.format_sql" value="false" />
<property name="hibernate.use_sql_comments" value="false" />
<property name="hibernate.jdbc.wrap_result_sets" value="false" />
<property name="hibernate.hibernate.cache.use_query_cache" value="true" />
<property name="hibernate.c3p0.validate" value="true" />
</properties>
</persistence-unit>
我尝试使用 C3P0 连接池进行配置,但是出现了同样的错误……下面是 C3P0 的配置。
<!-- Important -->
<property name="hibernate.connection.provider_class" value="org.hibernate.connection.C3P0ConnectionProvider" />
<property name="hibernate.c3p0.max_size" value="100" />
<property name="hibernate.c3p0.min_size" value="0" />
<property name="hibernate.c3p0.acquire_increment" value="1" />
<property name="hibernate.c3p0.idle_test_period" value="300" />
<property name="hibernate.c3p0.max_statements" value="0" />
<property name="hibernate.c3p0.timeout" value="100" />
我可以通过更改您计算机上的日期来强制出错,因为 MySQL 获取与参考相同的日期。我无法解决这个问题,我希望这里有人尝试分享您应用的解决方案时遇到同样的问题。
费利佩。