我在 JAX-RS (Jersey) 应用程序中使用 eclipselink 2.4。
在我的基本控制器中,我连接到我的数据库,但由于实体管理器仅在执行查询时才真正连接,因此会引发异常。
有没有一种方法可以确定在获得 EntityManager 对象后是否可以连接到数据库,以便我可以自己处理异常(并手动故障转移到另一个数据库)。
编辑:假设我根本无法更改底层 DBMS。
我在 JAX-RS (Jersey) 应用程序中使用 eclipselink 2.4。
在我的基本控制器中,我连接到我的数据库,但由于实体管理器仅在执行查询时才真正连接,因此会引发异常。
有没有一种方法可以确定在获得 EntityManager 对象后是否可以连接到数据库,以便我可以自己处理异常(并手动故障转移到另一个数据库)。
编辑:假设我根本无法更改底层 DBMS。
您可以创建一个ServletContextListener并在启动时为您的应用程序运行查询。但是,如果它失败了,我猜你的错误处理就不走运了。
你真的应该得到一个集群 HA 数据库。