Рассмотрите обновленное развертывание Kubernetes, когда старые модули останавливаются, а новые запускаются. У нас есть модули с запущенным tomcat, подключенные к базе данных MySQL.
Как только кот получает команду остановки, он начинает останавливать приложение. Однако все еще выполняются задачи, и потеря подключения к базе данных приводит к большому количеству исключений. Это нормально, так как приложение больше ничего не делает. Моя проблема в том, что это «спамит» наши журналы с фатальными ошибками, и трудно определить, какие исключения актуальны, а какие просто вызваны остановкой приложения.
Одним из таких исключений является:
java.lang.IllegalStateException: незаконный доступ: это веб-приложение
Экземпляр уже остановлен. Не мог загрузить
[Sun.reflect.NativeMethodAccessorImpl]. Следующая трассировка стека
брошен для целей отладки, а также для попытки прекратить
поток, вызвавший несанкционированный доступ.
Есть ли способ предотвратить регистрацию таких исключений? Можно ли остановить запись в момент отправки сигнала остановки?