以编程方式停止H2数据库

6
考虑到我们有一个从使用Hibernate的Tomcat Web应用程序启动的H2数据库。换句话说,它是应用程序中嵌入的H2数据库。
问题是:是否可能从该应用程序以编程方式停止此H2服务器,然后再次启动它?
附注:Server.createTcpServer(args).start()或Server.shutdown(...)不是正确的方法,因为它在嵌入模式下运行。

你的应用程序中使用嵌入式H2吗?如果是这样,那么没有运行H2服务器。你的Web应用程序是H2应用程序的客户端吗?它是嵌入应用程序的那个吗?顺便问一下,你的用例是什么?为什么要重新启动? - David Brossard
@DavidBrossard,请不要让我解释为什么我需要重新启动。请帮我做到这一点 :) - Andremoniy
好的,还好 :-) 不过,如果您的数据库嵌入在应用程序中,那么重新启动是什么意思呢?重新启动所有 JDBC 连接到数据库吗? - David Brossard
不,我的意思是实际上“停止”数据库。这意味着在关闭时 h2 不会使用其磁盘上的文件。 - Andremoniy
1个回答

13
在这种情况下,采用这种方法将是可行的解决方案:
  1. 停止H2数据库只需使用SHUTDOWN SQL命令:

    session.createSQLQuery("SHUTDOWN").executeUpdate();

  2. 重新启动H2不需要执行任何操作:Tomcat的连接池会自动完成。


谢谢,非常感谢! - Kefirchiks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接