JPA中超过连接时间恢复



运行一个非常工作(用数据库查找数以万计的文档索引),我得到此错误:java.sql.sqlexception:ORA-02399:超过最大连接时间,您正在登录

错误发生在repository.findone call。

该过程在tomcat下运行。

我需要做的(我认为)是登录oracle并获得新连接。但是,JPA非常有效地隐藏了所有细节。(甚至更远)。我该如何继续?

如果您获得了这样的超时,重新连接不是您的主要问题。您需要将超时时间足够长,或者您的交易短短以免触发超时。

重新连接的关注通常是透明地照顾连接池,除了测试外,您最肯定应该将其用于所有内容。但这无法解决您的直接问题,即连接已关闭并且交易退回。

更新:问题似乎不是交易持续时间,而是连接持续时间。

如果这真的是真的,您应该与DBA负责此超时的DBA,因为恕我直言,关闭使用的连接是没有意义的,因为它们在某些给定的时间内开放。

您不能/不想手动关闭或重新打开连接。这是连接池的任务。如果您关闭连接从连接池获得的连接,则您并没有真正关闭它,而是将其返回连接池。

相反,将连接池配置为关闭连接并定期创建新连接。此工作的工作方式取决于您正在使用的连接池。

最新更新