如何用它的所有后台线程关闭H2 SQL(MVStore)

时间:2018-03-24 18:30:11

标签: java h2

在使用嵌入式H2SQL v1.4.196的Java应用程序的内存分配优化过程中,我注意到即使在关闭所有H2数据库连接(通过'Connection.close()')之后,甚至在尝试执行'SHUTDOWN'语句之后,仍然是一个背景H2线程运行 - “MVStore $ BackgroundWriterThread”。如果我理解正确 - 它是H2的键值存储引擎。

5 sec memory allocation profiling screenshot

如何正确关闭剩余的H2 SQL线程?到那时,所有活动数据库连接都已关闭。

在应用程序中打开和关闭数据库的方式:

connString = "jdbc:h2:file:" + dbFilename + ";TRACE_LEVEL_FILE=0;PAGE_SIZE=1024;LOG=0;CACHE_SIZE=8192;UNDO_LOG=0";
dbActiveConnection = DriverManager.getConnection(connString, "","");

// Do something

dbActiveConnection.createStatement().execute("SHUTDOWN");
dbActiveConnection.close();

// Rest of work without any database access
// Even after 10 minutes, H2's background thread still running

0 个答案:

没有答案