O Tomcat é desligado inesperadamente

2

Estou usando o Apache Tomcat 8.0.23 com 1 GB de RAM no centos 6 OS. Eu usei servlet e jsp para o lado do servidor. Mas depois de alguns dias, ele desliga automaticamente. Eu dei o tamanho da memória como CATALINA_OPTS="-Xms128M -Xmx256M" at bin / setenv.sh. Alguém pode me dizer por que meu servidor é desligado? Eu não estou muito familiarizado com o Tomcat e o Linux. Eu também tentei ver arquivos de log em var/log e apache-Tomcat/logs . Mas eu não encontrei nenhuma coisa suspeita lá. 1 GB de RAM é suficiente para o meu servidor? Meu aplicativo android está sendo executado em cerca de 5000 dispositivos.

Alguma sugestão?

Editar:

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"

Obrigado!

    
por Deepak Rathore 24.11.2015 / 08:29

2 respostas

0

Infelizmente, não é possível apontar uma causa exata apenas com o contexto dado na pergunta. Você precisará coletar mais informações sobre isso para apontar qualquer causa raiz.

Eu só posso oferecer heurísticas gerais para depurá-lo. Tente alterar vários parâmetros do ambiente para localizar a causa raiz, alterando apenas uma coisa por vez. Quando o problema ocorre? Isso acontece sob determinada carga de aplicativo. O que acontece se você executar a instância do tomcat sem seu aplicativo? Funciona em outro SO ou máquina?

Você precisará começar a isolar a falha. Se funcionar bem em outra máquina, você pode descartar as causas ambientais, como uma tarefa cron ou algum serviço do sistema, eliminando o processo. Se a sua instância do tomcat for executada corretamente sem o aplicativo, a falha não estará na configuração do servidor. E assim por diante.

Para acelerar o processo (já que isso ocorre apenas a cada poucos dias), você pode executar cada teste em uma instância separada do tomcat e, assim, fazer testes simultâneos para várias possibilidades.

Para mim, a memória não parece ser o problema aqui. A memória alocada deve ser suficiente, mas, mesmo que não seja, você deve obter OutOfMemoryError não apenas desligamentos arbitrários silenciosos.

Você pode tentar aumentar o detalhamento do log do tomcat para imprimir informações mais detalhadas. Isso pode ser feito alterando as configurações em ./conf/logging.properties

    
por 24.11.2015 / 09:49
0

Tente aumentar a memória e edite o arquivo setenv.sh e aumente as variáveis CATALINA_OPTS para alocar mais memória ao tomcat.

    
por 23.10.2017 / 21:09