Какова наилучшая практика при работе с ошибками в серверном приложении?Обработка ошибок (например, OutOfMemoryError) на серверах
В частности, как, по вашему мнению, приложение должно обрабатывать ошибки, такие как OutOfMemoryError
?
Меня особенно интересуют приложения Java, работающие в Tomcat, но я думаю, что это более общая проблема.
Причина, почему я спрашиваю, потому что я рассматриваю веб-приложение, которое часто бросает OOME, но обычно он просто регистрирует их, а затем приступает к исполнению. Это приводит, очевидно, к большему количеству OOME.
Хотя это, безусловно, плохая практика, на мой взгляд, я не совсем уверен, что остановка сервера будет лучшим решением.
Правильно, теоретически и очень неправильно на практике. В серверном приложении, где каждая минута простоев стоит реальных денег, вы делаете все возможное, чтобы обрабатывать * каждую ошибку, потому что исправление не то, что вы можете сделать немедленно (но, конечно, делать это как можно скорее, поэтому ошибка должна включать отправку некоторых срочных уведомлений), но упущенные возможные издержки * * начинаются немедленно. –
Конечно, отправка уведомления - это хорошо, но это не должно быть реализовано в приложении, это проблема контроля/мониторинга. Затем, если вам нужна высокая доступность (т. Е. Нет простоя), запустите кластер, а не один экземпляр сервера приложений. Наконец, ОП просят о лучшей практике, и я считаю, что наилучшей практикой является устранение проблемы, а не ее обработка или отправка уведомления об этом. –
Я бы сказал, что лучшая практика - это сделать как можно больше. Запуск кластера увеличивает стоимость и сложность непропорционально. –