我在内存模式下使用 H2 DB 来处理一些数据。我的 Java 应用程序需要在每次运行时删除和重新创建或截断或删除 H2 DB 中的所有对象时保持 JVM 开启。因此,我需要在数据库 URL 中使用选项“DB_CLOSE_DELAY=-1”。
为了在迭代后清理内存,我尝试使用“DROP ALL OBJECTS”、“DROP ALL OBJECTS DELETE FILES”并逐个截断每个表。所有这些都实现了我想要的,并没有删除它当前占用的内存。我的数据库大小从大约 300MB 到 2GB 不等。因此,在单次迭代后,我的 RAM 被占用了大约 1GB,并且没有找到任何解决方案来解决这个问题或解决方案。
有点类似于这个Clear the in memory database after every testcase .但是没有 dbUnit,也需要清除 RAM。
是否可以在不停止 JVM 的情况下执行此操作。
谢谢。
最佳答案
您可以执行语句shutdown
。这将关闭连接和数据库。
关于database - 内存中的 H2 DB 清理 RAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14812070/