以编程方式停止 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 数据库的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式设置 H2 DB

java中如何停止h2数据库服务器并启动h2数据库服务器编程

如何以编程方式停止 SSAS 多维数据集处理?

如何以编程方式完成作业后停止cron作业

以编程方式停止 PlayFramework 作业

将 H2 数据库嵌入 ETL 应用程序?