Jeśli zamknięcie serwera aplikacji powoduje wywołania JDBC, które kończą sesję bazy danych, nie powinno to mieć miejsca. Jeśli nie zamyka poprawnie połączenia JDBC, nazwałbym to błędem w serwerze aplikacji. Jeśli tak, ale zapytania na backendzie nie są anulowane, nazwałbym to błędem w sterowniku JDBC.
W każdym razie obejściem jest ustawienie tcp_keepalives_idle
do niskiej wartości, aby serwer szybko wykrył martwe połączenia TCP i zakończył zapytanie.