Tengo la aplicación J2SE ejecutándose en Linux. He detenido la secuencia de comandos de la aplicación en la que estoy haciendo matar al pid J2SE. Esta aplicación J2SE tiene 6 subprocesos de usuario que se ejecutan de manera infinita, que sondearán para algunos registros específicos en el backend DB.Invocar un método de limpieza para el subproceso de usuario Java, cuando JVM detiene el subproceso
Cuando se elimina este java pid, necesito realizar algunas operaciones de limpieza para cada uno de los hilos de ejecución larga, como conectarme a DB y configurar el estado de algunas transacciones que están en progreso para vaciar.
Hay una manera de escribir un método en cada uno de los subprocesos, que JVM llamará cuando el subproceso se detendrá.
Gracias por la explicación detallada. El proceso de Java se ejecuta en Red Hat Linux OS. Y en mi secuencia de comandos stopApplication, obtengo el PID del proceso java (almacenado en un archivo, al iniciar) y hago kill -15 (SIGTERM), duermo durante 40 segundos y luego hago kill -9 del pid . Solo quiero saber, cuando se ejecuta kill -15 pid, ¿se invocará Runtime.addshutdownHook? – user309281
Sí. 'kill -15 PID' produce la misma salida del programa java que la salida de' kill PID' (Ver arriba). – aioobe