6

我在内存模式下使用 H2 DB 来处理一些数据。我的 java 应用程序需要在每次运行中删除和重新创建或截断或删除 H2 DB 中的所有对象时保持 JVM 开启。因此,我需要在 DB URL 中使用选项“DB_CLOSE_DELAY=-1”。

为了在迭代后清理内存,我尝试使用“DROP ALL OBJECTS”、“DROP ALL OBJECTS DELETE FILES”并逐个截断每个表。所有这些都实现了我想要的,并没有删除它当前占用的内存。我的数据库大小从大约 300MB 到 2GB 不等。因此,在一次迭代之后,我的 RAM 大约占用了 1GB,并且没有找到任何解决方案来解决这个问题的原因或解决方案。

有点类似于这个Clear the in memory database after each testcase。但是没有 dbUnit 并且也需要清除 RAM。

是否可以在不停止 JVM 的情况下执行此操作。

谢谢。

4

1 回答 1

5

你可以执行语句shutdown。这将关闭连接和数据库。

于 2013-02-12T06:17:23.613 回答