以编程方式停止 H2 数据库
Posted
技术标签:
【中文标题】以编程方式停止 H2 数据库【英文标题】:Stop H2 database programmatically 【发布时间】:2013-11-26 10:35:55 【问题描述】:假设我们有一个H2
数据库,它是从Tomcat
下的Web 应用程序使用Hibernate
启动的。换句话说它是一个嵌入到应用程序中的H2
数据库。
问题:是否可以以编程方式从此应用程序中停止此H2
服务器,然后重新启动它?
附: Server.createTcpServer(args).start();
或 Server.shutdown(...)
不是办法,因为它处于嵌入模式。
【问题讨论】:
您在应用程序中使用嵌入式 H2 吗?在这种情况下,没有运行 H2 服务器。您的网络应用程序是 H2 应用程序的客户端吗?它是嵌入应用程序的那个吗?顺便说一句,您的用例是什么?为什么要重启? @DavidBrossard 我不解释为什么我需要重新启动。请帮我这样做:) 很公平 :-) 不过,如果您的数据库嵌入在您的应用程序中,那么重启意味着什么?重新启动到数据库的所有 jdbc 连接? 不,我的意思是stop
数据库。这意味着,h2 在关闭时不会使用它在磁盘上的文件。
【参考方案1】:
在这种特殊情况下,这种方法将是一个可行的解决方案:
要停止 H2 数据库,只需使用SHUTDOWN
sql 命令:
session.createSQLQuery("SHUTDOWN").executeUpdate();
要重启 H2,你不需要做任何事情:Tomcat 的连接池会自动完成。
【讨论】:
谢谢,非常感谢!以上是关于以编程方式停止 H2 数据库的主要内容,如果未能解决你的问题,请参考以下文章