我集成的数据库配置为好像连接处于空闲状态(一段时间未使用),然后连接被丢弃。由于我在持久配置中使用弹簧批处理,因此在运行线程上总是有一个活动的数据库连接。
我的一项春季批处理作业依赖于来自外部 Web 服务的数据,这需要很长时间才能执行。这就是为什么当我得到结果时我已经失去了数据库连接。
我尝试在 Web 请求发生之前使用 taskscheduler 注册一个心跳查询(从 dual 中选择 1),它每 5 分钟执行一次查询以保持连接处于活动状态,但即使查询定期执行,我猜它也会单独执行查询连接,因为它在另一个线程上运行。
有没有人有其他建议可以在锁定线程时保持连接处于活动状态?
我使用 JPA 的 EntityManager 进行 haertbeat 查询