Java 如何与EclipseLink重新连接丢失的连接?

Java 如何与EclipseLink重新连接丢失的连接?,java,mysql,jpa,jdbc,eclipselink,Java,Mysql,Jpa,Jdbc,Eclipselink,我的问题是,如果mySQL服务器在500秒的“睡眠时间”后终止会话,那么下一个请求就不会成功。如果mySQL服务器不关闭休眠连接,同样的问题可能会在700秒后发生 我能做什么? 遵循my persistence.xml的属性 如果有必要知道的话,transactiontype是RESOURCE\u LOCAL。您是如何配置连接池的?如果它是服务器数据源,则应在服务器中设置连接测试等属性。请参见示例设置 如果它是EclipseLink池,则在默认情况下检测到连接失败时,它应该自动尝试重试查询

我的问题是,如果mySQL服务器在500秒的“睡眠时间”后终止会话,那么下一个请求就不会成功。如果mySQL服务器不关闭休眠连接,同样的问题可能会在700秒后发生

我能做什么? 遵循my persistence.xml的属性



如果有必要知道的话,transactiontype是RESOURCE\u LOCAL。

您是如何配置连接池的?如果它是服务器数据源,则应在服务器中设置连接测试等属性。请参见示例设置

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

好的,我现在有一个-1,但如果能理解我在问题中做错了什么也很好,因为这个问题对我来说非常重要,我想你可以从问题中看出,这不是mySQL的问题。例如,如果我从外部终止连接,mySQL工作台没有任何问题。我也可能禁用终止休眠连接,但就像我在700秒后问题再次出现之前所说的那样。你的-1现在消失了-你的问题完全有效。似乎有人认为连接池是微不足道的,但以下问题都没有得到正确的回答:非常感谢。第二个适合我。事实证明,我必须手动设置
login.setConnectionHealthValidationError(true)默认情况下我理解为true。
<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" />