[英]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.