我有一个 EJB 应用程序,它在 Glassfish 3.1.2 上使用 JPA 2.0(提供程序是 EclipseLink)。当数据库关闭时,应用程序无法启动,甚至更多:无法部署。这是因为 EclipseLink 做了一些初始验证。
有没有一种方法可以在数据库关闭的情况下部署和启动应用程序?
背景:在调用访问数据库的第一个业务函数之前,不可用的资源不会发挥作用。从应用程序启动到第一次业务功能调用,有一个时间窗口可以启动数据库。
更改glassfish-resources.xml
属性connection-creation-retry-attempts
和属性的默认值以某种方式connection-creation-retry-interval-in-seconds
提供<jdbc-connection-pool>
帮助,但仍会在启动时检查数据库的可用性,而不是在首次使用时。
ExceptionHandler
来自 EclipseLink 的方式不是我想的那样:当异常处理程序开始发挥作用时,EclipseLink 已经开始了验证过程,因此尝试连接到数据库。我正在寻找的方法是将验证过程本身推迟到第一个业务电话。