Si cerrar el servidor de aplicaciones provoca llamadas JDBC que finalizan la sesión de la base de datos, esto no debería suceder. Si no cierra la conexión JDBC correctamente, lo llamaría un error en el servidor de aplicaciones. Si es así, pero las consultas en el backend no se cancelan, lo llamaría un error en el controlador JDBC.
De todos modos, una solución es establecer tcp_keepalives_idle
a un valor bajo para que el servidor detecte conexiones TCP inactivas rápidamente y finalice la consulta.