繁体   English   中英

如何使用JPA获取数据库连接状态?

[英]How to get DB connection state using JPA?

在服务器启动期间(tomcat),我正在创建一个mangerfactory实体并将其存储到内存中。 我的问题是,在这段时间内有什么方法可以检查连接状态?

现在发生的事情是,它在启动期间创建了一个objectmangerfactory对象,但是不测试是否已连接数据库。 使用无效的配置,它正在创建entitymanagerfactory,但是当我们尝试仅执行一些查询时,我得到了异常。

如果要在服务器启动期间检查连接状态,该怎么办?

提前致谢

问候,Somnath Guha

您应该创建一个实现ServletContextListener的Servlet,

web.xml:

<listener>
  <listener-class>test.JPACheckServlet</listener-class>
</listener>

编码:

public class JPACheckServlet implements ServletContextListener {
  public void contextInitialized(ServletContextEvent event) {
    here put the code for checking the connection and report status, logging...
  }
  public void contextDestroyed(ServletContextEvent event) {
    here to handle fancy shutdown situation, loggings, etc 
  }
}

阅读的好线程: servlet如何工作? 实例化,会话,共享变量和多线程

让我重新表述您的问题:在启动期间,我想知道我是否能够成功执行查询。 忘记连接状态,这是您的最终目标-执行JPA持久性工作,而不会出现连接错误。

所以...在创建工厂后的启动过程中,获取EntityManager并尝试执行简单的提取。 似乎很明显,不是吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM