Назад | Перейти на главную страницу

Tomcat неожиданно выключается

Я использую Apache Tomcat 8.0.23 с 1 ГБ ОЗУ в ОС centos 6. Я использовал сервлет и jsp для серверной части. Но через несколько дней он автоматически отключается. Я указал размер памяти как CATALINA_OPTS="-Xms128M -Xmx256M" в bin / setenv.sh. Кто-нибудь может сказать мне, почему мой сервер выключается? Я не очень хорошо знаком с Tomcat и Linux. Я также пытался просмотреть файлы журнала на var/log и apache-Tomcat/logs . Но ничего подозрительного я там не обнаружил. Достаточно ли 1 ГБ оперативной памяти для моего сервера ?. Мое приложение для Android работает примерно на 5000 устройствах.

Какие-либо предложения ?

Редактировать :

07-Aug-2015 03:58:03.199 INFO [Finalizer] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance has been stopped already. Could not load [java.net.BindException]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
 java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [java.net.BindException]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
    at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1327)
    at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1313)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1196)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1157)
    at com.mysql.jdbc.CommunicationsException.<init>(CommunicationsException.java:161)
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2759)
    at com.mysql.jdbc.MysqlIO.quit(MysqlIO.java:1410)
    at com.mysql.jdbc.Connection.realClose(Connection.java:4900)
    at com.mysql.jdbc.Connection.cleanup(Connection.java:2061)
    at com.mysql.jdbc.Connection.finalize(Connection.java:3376)
    at java.lang.System$2.invokeFinalize(System.java:1270)
    at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:98)
    at java.lang.ref.Finalizer.access$100(Finalizer.java:34)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:210)

10-Aug-2015 18:34:35.757 WARNING [http-nio-8080-exec-63] org.apache.catalina.realm.LockOutRealm.authenticate An attempt was made to authenticate the locked user "root"
10-Aug-2015 18:36:19.397 WARNING [http-nio-8080-exec-65] org.apache.catalina.realm.LockOutRealm.authenticate An attempt was made to authenticate the locked user "manager"
10-Aug-2015 18:36:28.451 WARNING [http-nio-8080-exec-63] org.apache.catalina.realm.LockOutRealm.authenticate An attempt was made to authenticate the locked user "manager"
10-Aug-2015 18:36:38.882 WARNING [http-nio-8080-exec-70] org.apache.catalina.realm.LockOutRealm.authenticate An attempt was made to authenticate the locked user "manager"

Спасибо !

Попробуйте увеличить память, а затем отредактируйте файл setenv.sh и увеличьте переменные CATALINA_OPTS, чтобы выделить больше памяти для tomcat.

К сожалению, невозможно указать точную причину только в контексте, заданном в вопросе. Вам нужно будет собрать больше информации об этом, чтобы указать на основную причину.

Я могу предложить вам только общую эвристику для его отладки. Попробуйте изменить различные параметры среды, чтобы локализовать основную причину, изменяя только одну вещь за раз. Когда возникает проблема? Происходит ли это при определенной загрузке приложения. Что произойдет, если вы запустите экземпляр tomcat без вашего приложения? Работает ли он на другой ОС или машине?

Вам нужно будет начать устранять неисправность. Если он отлично работает на другой машине, вы можете исключить причины окружающей среды, такие как задание cron или какая-то системная служба, убивающая процесс. Если ваш экземпляр tomcat работает нормально без приложения, значит, ошибка не в конфигурации сервера. И так далее.

Чтобы ускорить процесс (поскольку он повторяется только каждые несколько дней), вы можете запускать каждый свой тест в отдельном экземпляре tomcat и, таким образом, одновременно тестировать несколько возможностей.

Мне кажется, что память здесь не проблема. Выделенной памяти должно быть достаточно, но даже если это не так, вы должны получить OutOfMemoryError не просто произвольное тихое выключение.

Вы можете попробовать увеличить подробность ведения журнала tomcat, чтобы распечатать более подробную информацию. Это можно сделать, изменив настройки в ./conf/logging.properties