java - Eclipselink 异常后重试查询
问题描述
我正在使用 JPA/Eclipselink 连接到处于 HA 模式的 PostgreSQL 实例。当触发 PostgreSQL 的故障转移时,当前主实例将打开只读模式。有时,我会在故障转移的确切时刻收到PSQLException: Fatal terminating connection due to administrator command
并插入一些数据。发生这种情况是因为我也在使用连接池。当重试相同的语句时,它会在重新连接连接时再次工作。是否有任何最佳实践来避免这种情况?当然,我可以包装 JPAEntityManager
并构建某种重试机制。我还发现了一个异常处理程序 [1],其中文档明确提到了查询的重试:
使用接受 java.lang.RuntimeException 的类的 handleException 方法来:
重新抛出异常
抛出不同的异常
重试查询或数据库操作。
我还没有找到一个ExceptionHandler
使用“重试查询或数据库操作”的例子。
问候
解决方案
推荐阅读
- iis - IIS 中的重定向规则不适用
- javascript - 如何将市值自动呈现到由股票价格 * 流通股数导致的页面
- javascript - 如何在 NetSuite 中为 HTML 元素赋予 DOM 中的 ID?
- git - AWX 问题:来自 git 的电子邮件通知和库存
- c# - Roslyn 语法重写器是如何集成的?
- angular - 在 div 中显示表单控件值
- vb.net-2010 - VB.net Streamreader 在不同子系统中的使用
- android - 带有 DiffUtil (ListAdapter) 的 RecyclerView 会阻塞 UI 线程
- sql - 'TO_TIMESTAMP(TO_CHAR(TO_DATE(' SQL Server 中的语句
- c# - 与原点最近的 K 个点(K 个最小元素),hoare 的分区没有给出特定输入的正确答案