HSQLDB相当于H2自动混合模式

时间:2011-02-22 18:38:37

标签: hsqldb h2

有吗?显然不是。描述了H2自动混合模式 here

2 个答案:

答案 0 :(得分:1)

复兴以供进一步参考。

正如@fredt所说,据我所知,没有正式的魔术参数来实现混合模式。 尽管如此,您始终可以start a server programmatically使用Server对象,以便其他进程能够连接到您的数据库。

我发现了一个完成非常接近混合模式的技巧。为此,您需要将remote_open属性设置为true,并使用this形式的网址进行连接。

这里的想法是做这样的事情:

  • 尝试使用上述网址连接到服务器。
  • 如果无法连接,则意味着服务器尚未启动,请继续以编程方式启动服务器。
  • 再次连接时,会发生以下三种情况之一。
    • 如果不存在数据库文件,将在指定的文件路径中创建一个,并且服务器将从URL别名开始提供它。
    • 如果数据库文件存在且未提供服务,则服务器将从指定路径打开该文件并开始提供该文件。
    • 如果数据库文件存在且正在提供服务,则服务器将只返回连接。

当你计划产生大量短期流程时,我不确定使用这种模式是否安全(特别是我没有深入研究HSQLDB代码来检查它如何处理数据库/创建/打开设置remote_open时多个同时请求。尽管如此,我一直在使用这种模式在Web应用程序之间共享开发数据库一段时间,并且从未遇到过单个数据库损坏问题。

这里的主要限制是,当作为服务器的应用程序关闭时,打开的连接将停止工作并抛出异常...这对我的开发环境来说不是问题,这里通常只会意味着一两个破坏请求,直到另一台服务器启动,连接池检测并更新其连接。

答案 1 :(得分:0)

没有HSQLDB不支持这种模式。

相关问题