Java: как правильно остановить потоки при перезапуске TomcatJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java: как правильно остановить потоки при перезапуске Tomcat

Сообщение Anonymous »

Моя проблема: каждый раз, когда я перезапускаю Tomcat как службу (через Services.msc в Windows), этот процесс занимает много времени (около 2 минут). В журналах Tomcat (tomcat9-stderr.yyyy-mm-dd.txt) я вижу, что все потоки не могут быть должным образом остановлены и, кроме того, существует проблема с отменой регистрации драйвера JDBC:

Код: Выделить всё

26-Jul-2024 15:32:16.575 WARNING [Thread-9] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [MyWebApp] registered the JDBC driver [net.sourceforge.jtds.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
26-Jul-2024 15:32:16.575 WARNING [Thread-9] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [MyWebApp] appears to have started a thread named [Timer-0] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Unknown Source)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)
Такая же ситуация и с каждой отдельной веткой.
Итак, есть два вопроса:
  • Что как правильно отменить регистрацию драйвера JDBC?
  • Возможно ли, что ошибки с закрытием потока являются причиной медленного перезапуска Tomcat? Если да, то как правильно закрыть каждый поток?
Я пытался вставить следующий код внутри каждого потока, но наблюдаются те же исключения при каждом перезапуске:

Код: Выделить всё

if (Thread.currentThread().isInterrupted())
{
throw new InterruptedException();
}
Я использую Java 8 и Tomcat-9.
Я очень признателен за любую помощь! Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/788 ... -restarted
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»