Se l'arresto del server delle applicazioni provoca chiamate JDBC che terminano la sessione del database, ciò non dovrebbe accadere. Se non chiude correttamente la connessione JDBC, lo definirei un bug nel server delle applicazioni. In tal caso, ma le query sul back-end non vengono annullate, lo definirei un bug nel driver JDBC.
Ad ogni modo, una soluzione alternativa è impostare tcp_keepalives_idle
a un valore basso in modo che il server rilevi rapidamente le connessioni TCP morte e termini la query.