HSQLDB 缓存过于激进?
Posted
技术标签:
【中文标题】HSQLDB 缓存过于激进?【英文标题】:HSQLDB caching too aggressively? 【发布时间】:2013-05-23 16:27:03 【问题描述】:在我的应用程序中,我需要能够关闭所有 HSQL 连接、删除数据库文件,然后打开创建新数据库的新连接。我在磁盘上使用缓存表。
我发现 HSQL 正在记住旧数据库的内容——即使我已经从磁盘中删除了这些文件并建立了新的连接!我已经在 org.hsqldb.jdbc.JDBCConnection 类的构造函数上放置了断点,以验证我正在获取新的 Connection 对象(我是)。
如果我停止并启动该进程,则 HSQL 会正确“忘记”旧数据库并重新启动,但这是一个服务器端进程,我无法轻松停止和启动。
到目前为止,我发现的唯一解决方案是对 HSQL 数据文件的路径进行一些调整,这样它就不会尝试使用上次连接中的缓存数据。我希望有一些方法可以在 HSQL 中调用来清除缓存,这样新的连接就会开始时不会从旧数据中记住任何数据。
【问题讨论】:
【参考方案1】:您应该关闭数据库。这会关闭所有打开的连接并清除缓存。
使用了 SQL 语句,SHUTDOWN。
您可以在关机后删除文件。
【讨论】:
以上是关于HSQLDB 缓存过于激进?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 HsqlDB 上将 MEMORY 表转换为 CACHED 表?