如何使用EclipseLink重新连接丢失的连接?

时间:2014-05-07 18:49:07

标签: java mysql jpa jdbc eclipselink

如果mySQL服务器在500秒之后杀死会话并且睡眠时间为#34,则表示下一个请求未成功。如果mySQL服务器没有关闭睡眠连接,则可能在700秒后出现同样的问题。

我该怎么办? 遵循我的persistence.xml的属性

<property name="eclipselink.query-results-cache" value="false" />
<property name="eclipselink.cache.size.default" value="0" />
<property name="eclipselink.cache.type.default" value="None" />
<property name="eclipselink.cache.alwaysRefresh.default" value="true" />
<property name="eclipselink.jdbc.read-connections.max" value="10" />
<property name="eclipselink.jdbc.cache-statements" value="true" />
<property name="eclipselink.jdbc.read-connections.shared" value="true" />

如果知道的话,事务类型是RESOURCE_LOCAL。

1 个答案:

答案 0 :(得分:4)

您是如何配置连接池的?如果是服务器数据源,则应在服务器中设置连接测试等属性。有关示例设置,请参阅http://docs.oracle.com/cd/E21764_01/web.1111/e13737/ds_tuning.htm#i1199711

如果是EclipseLink池,默认情况下它会在检测到连接失败时自动尝试重试查询。控制行为的属性只能通过特定数据库的DatabasePlaform类中的api访问,并且可以通过此处所述的自定义程序进行设置: How To modify Eclipselink JPA 2.0 connection retry behavior