一部のデータを処理するために、メモリ内モードでH2DBを使用しています。私のJavaアプリケーションは、実行ごとにH2 DB内のすべてのオブジェクトをドロップして再作成するか、切り捨てるか、ドロップする間、JVMをオンにしておく必要があります。したがって、DBURLでオプション「DB_CLOSE_DELAY=-1」を使用する必要があります。
反復後にメモリをクリーンアップするために、「DROP ALL OBJECTS」、「DROP ALL OBJECTS DELETE FILES」を使用して、各テーブルを1つずつ切り捨ててみました。これらはすべて、現在占有されているメモリを削除せずに、私が望んでいたことを達成しました。私のデータベースのサイズは約300MBから2GBまでさまざまです。したがって、1回の反復の後、私のRAMは約1GBを占有し、これの原因または解決策についての解決策が見つかりませんでした。
これにやや似ていますすべてのテストケースの後にメモリ内データベースをクリアします。ただし、dbUnitがなく、RAMもクリアする必要があります。
JVMを停止せずにこれを行うことは可能ですか?
ありがとう。