Avalados por :

Cómo reiniciar una aplicación Java en SAP Cloud Platform con Tomcat 8 de forma segura

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

He implementado una aplicación Java en la plataforma SAP Cloud, concretamente en el entorno de tiempo de ejecución "Java Web Tomcat 8". Tengo un requisito en el que necesito proporcionar la capacidad de permitir a los usuarios reiniciar la aplicación desde la propia aplicación. ¿Existe algún soporte de la Plataforma Cloud para lograr esto?


Por otro lado, descubrí accidentalmente que si hago un System.exit(0) la aplicación se reinicia por sí sola, pero no pude encontrar ninguna documentación que garantice este comportamiento. ¿Existe algo así como que para ciertos códigos de salida, la Plataforma Cloud reinicie la aplicación?

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

4 Respuestas

0
Cargando...

Hola Ivan,

Muchas gracias por la respuesta detallada, lo intenté y mi observación es que esto detiene la aplicación y SCP vuelve a iniciar la aplicación automáticamente. Por lo tanto, esto es efectivamente un reinicio. Me pregunto si SCP reinicia la aplicación porque trata este APAGADO como un problema crítico en la aplicación e intenta recuperarse.

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

Hola Kalpa,

Tu aplicación web se está ejecutando dentro de un contenedor de servlet que te proporciona el tiempo de ejecución elegido (es decir: Java Web Tomcat 8).
Dado que el contenedor es responsable del ciclo de vida de tu aplicación, nunca debes llamar a System.exit(0). Esto no es algo de SCP. Llamar a System.exit(0) apagará toda la VM responsable de Tomcat.

Aquí tienes mi opinión sobre el reinicio: SCP es responsable de la salud de la aplicación. La terminación de una VM puede considerarse por SCP un problema crítico, ya que nadie ha ordenado detener la aplicación. Por lo tanto, puede intentar reiniciar todo el contenedor en un intento de devolver el estado de la aplicación a la normalidad. Estas son mis suposiciones.

Si realmente necesitas detener tu aplicación de forma segura, debes conectarte al puerto de apagado y escribir la palabra SHUTDOWN.

try { 
    Socket socket = new Socket("localhost", 8005); //este es el estándar en server.xml en el SDK
    if (socket.isConnected()) { 
        PrintWriter pw = new PrintWriter(socket.getOutputStream(), true); 
        pw.println("SHUTDOWN");//enviar comando de apagado - también estándar
        pw.close(); 
        socket.close(); 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
}

Saludos,
Ivan

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

Básicamente necesito reinicializar la aplicación leyendo algunos archivos de configuración del repositorio de documentos.

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

¿Puedes explicar por qué la aplicación necesita ser reiniciada por el usuario en primer 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?