¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como reiniciar uma aplicação Java na SAP Cloud Platform com Tomcat 8 de forma segura

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 5 Vistas
0
Cargando...

Implementei um aplicativo Java na plataforma SAP Cloud, especificamente no ambiente de tempo de execução "Java Web Tomcat 8". Tenho um requisito no qual preciso fornecer a capacidade de permitir aos usuários reiniciarem o aplicativo a partir do próprio aplicativo. Existe algum suporte da Plataforma Cloud para alcançar isso?


Por outro lado, descobri acidentalmente que se eu executar um System.exit(0) o aplicativo reinicia por si só, mas não consegui encontrar nenhuma documentação que garanta esse comportamento. Existe algo assim como para certos códigos de saída, a Plataforma Cloud reiniciar o aplicativo?

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Olá Ivan,

Muito obrigado pela resposta detalhada, tentei e minha observação é que isso para o aplicativo e o SCP reinicia automaticamente o aplicativo. Portanto, isso é efetivamente um reinício. Fico pensando se o SCP reinicia o aplicativo porque considera esse DESLIGAMENTO como um problema crítico no aplicativo e tenta se recuperar.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Kalpa,

Sua aplicação web está sendo executada dentro de um contêiner de servlet que fornece o tempo de execução escolhido (ou seja: Java Web Tomcat 8).
Como o contêiner é responsável pelo ciclo de vida de sua aplicação, nunca deve chamar System.exit(0). Isso não é algo do SCP. Chamar System.exit(0) irá encerrar toda a VM responsável pelo Tomcat.

Aqui está minha opinião sobre a reinicialização: o SCP é responsável pela saúde da aplicação. O término de uma VM pode ser considerado pelo SCP um problema crítico, pois ninguém ordenou a parada da aplicação. Portanto, você pode tentar reiniciar todo o contêiner na tentativa de retornar o estado da aplicação ao normal. Estas são minhas suposições.

Se você realmente precisa parar sua aplicação de forma segura, deve se conectar à porta de desligamento e escrever a palavra SHUTDOWN.

try { 
    Socket socket = new Socket("localhost", 8005); //este é o padrão em server.xml no SDK
    if (socket.isConnected()) { 
        PrintWriter pw = new PrintWriter(socket.getOutputStream(), true); 
        pw.println("SHUTDOWN");//enviar comando de desligamento - também é padrão
        pw.close(); 
        socket.close(); 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
}

Saudações,
Ivan

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Basicamente preciso reinicializar a aplicação lendo alguns arquivos de configuração do repositório de documentos.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Pode explicar por que a aplicação precisa ser reiniciada pelo usuário em primeiro lugar?

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?