我使用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 every testcase,但不需要dbUnit并且需要清除RAM。
是否可以在不停止JVM的情况下实现这一点呢?
谢谢。
为了在迭代后清除内存,我尝试使用“DROP ALL OBJECTS”,“DROP ALL OBJECTS DELETE FILES”以及逐个截断每个表。所有这些都实现了我的目标,但没有删除当前占用的内存。我的数据库大小从大约300MB到2GB不等。因此,在单个迭代之后,我的RAM占用量为约1GB,并且没有找到任何解决方法。
与此类似的问题,参考链接:Clear the in memory database after every testcase,但不需要dbUnit并且需要清除RAM。
是否可以在不停止JVM的情况下实现这一点呢?
谢谢。
shutdown
。这将关闭连接和数据库。 - Thomas Mueller