Как правильно закрыть H2?

Это связано с этим постом .
Я думаю, что у меня проблема с H2, что означает, что он не закрывается должным образом.
Я подозреваю это, так как я вижу myDB.lock.db, когда я закрываю tomcat, и процесс не останавливается.
Я использую пул соединений Tomcat, и URL-адрес базы данных:
url="jdbc:h2:file:/opt/myOrg/tomcat/webapps/MyApplication/db/myDatabase;SCHEMA=myschema"

Из документа close H2:

Обычно база данных закрывается, когда установлено последнее соединение с ней. Closed.... По умолчанию база данных закрывается при последнем соединении. закрыто. Однако, если она никогда не закрывается, база данных закрывается, когда виртуальная машина нормально завершает работу, используя хук выключения

Не могу понять, делаю ли я что-то не так.
Должен ли я принудительно закрыть базу данных с помощью команды? В этом ли смысл хука выключения?
Что я здесь делаю неправильно?

Примечание:
Я не могу найти в Google пример того, как правильно закрыть H2(, кроме утверждения, что он закрывается автоматически при завершении последнего соединения). Должен ли я сам позвонить по номеру SHUTDOWN? Это правильный подход?
Я уже вижу голоса, чтобы закрыть вопрос, но не было причины или ссылки на пример того, что я исследую

ОБНОВЛЕНИЕ:
После того, как Йоонас Пулакка ответит на дополнительную информацию:

Из javacorea kill -3Я вижу потоки:

"H2 Log Writer MYAPPLICATION" J9VMThread:0x08DC6F00, j9thread_t:0x08C9B790, java/lang/Thread:0xE7206CC8, состояние:CW, приоритет=5 3XMTHREADINFO1 (идентификатор собственного потока:0xA32, собственный приоритет:0x5, собственная политика:НЕИЗВЕСТНО)3XMTHREADINFO2
(диапазон адресов собственного стека от:0xE5E26000,к :0xE5E67000, size:0x41000)3XMTHREADINFO3 Стек вызовов Java:
4XESTACKTRACE в java/lang/Object.wait(Собственный метод)
4XESTACKTRACE в java/lang/Object.wait(Object.java:196(Скомпилированный код))4XESTACKTRACE в org/h2/store/WriterThread.run(WriterThread.java:102)
4XESTACKTRACE в java/lang/Thread.run(Thread.java:736)

3XMTHREADINFO "pool-8-резьба-1" J9VMThread:0x087C0200, j9thread_t:0x0840566C, java/lang/Thread:0xE79BFC80, состояние:P, приоритет=5
3XMTHREADINFO1 (идентификатор собственного потока:0xE1A, собственный приоритет:0x5, собственная политика:НЕИЗВЕСТНО)3XMTHREADINFO2
(диапазон адресов собственного стека от :0xE5F69000 до :0xE5FAA000, size:0x41000)3XMTHREADINFO3 Стек вызовов Java:
4XESTACKTRACE в sun/misc/Unsafe.park(Собственный метод)
4XESTACKTRACE в java/util/concurrent/locks/LockSupport.park(LockSupport.java:184(Скомпилировано Код ))4XESTACKTRACE в java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1998(Скомпилировано Код ))4XESTACKTRACE в java/util/concurrent/LinkedBlockingQueue.take(LinkedBlockingQueue.java:413(Скомпилировано Код ))4XESTACKTRACE в java/util/concurrent/ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:958(Скомпилировано Код ))4XESTACKTRACE в java/util/concurrent/ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)4XESTACKTRACE в java/lang/Thread.run(Thread.java:736)

3XMTHREADINFO «Сторожевой таймер блокировки файлов H2 opt/myOrg/tomcat/webapps/MyApplication/db/myDatabase.lock.db" J9VMThread:0x08DC6900, j9thread_t:0x08C9BA24, ja
va/lang/Thread:0xE71E9018, состояние:CW, prio=9 3XMTHREADINFO1
(собственный идентификатор потока:0xA30, собственный приоритет:0x9,собственная политика :НЕИЗВЕСТНО)
3XMTHREADINFO2 (диапазон адресов собственного стека от :0xE5DBA000, в :0xE5DFB000, размер :0x41000 )3XMTHREADINFO3 Java стек вызовов :4XESTACKTRACE в java/lang/Thread.sleep(Собственный метод)4XESTACKTRACE
в java/lang/Thread.sleep(Thread.java:851(Скомпилированный код))
4XESTACKTRACE в org/h2/store/FileLock.run(FileLock.java:490)4XESTACKTRACE
в java/lang/Thread.run(Thread.java:736)

3XMTHREADINFO "FileWatchdog" J9VMThread:0x087C0800, j9thread_t:0x08C9B4FC, java/lang/Thread:0xE715D878, состояние:CW, prio=5
3XMTHREADINFO1 (идентификатор собственного потока:0xA2C, собственный приоритет:0x5, собственная политика:НЕИЗВЕСТНО)3XMTHREADINFO2
(диапазон адресов собственного стека от :0xE5E67000 до :0xE5EA8000, size:0x41000)3XMTHREADINFO3 Стек вызовов Java:
4XESTACKTRACE в java/lang/Thread.sleep(Собственный метод)4XESTACKTRACE в java/lang/Thread.sleep(Thread.java:851(Скомпилированный код))4XESTACKTRACE в org/apache/log4j/helpers/FileWatchdog.run(FileWatchdog.java:104)

23
задан Community 23 May 2017 в 12:09
поделиться