Я думаю, что открывать соединение с базой данных SQL в течение 8 часов - плохая практика. У вас есть длительная операция, которая требует так много времени? Затем подумайте о наличии в вашей базе данных хранимой процедуры, которая должна записывать результаты во временную таблицу, которую вы можете проверить позже.
Но обычно приложение должно освободить соединение (и, ах, все подготовленные операторы с ним) как можно скорее. Чтобы ускорить открытие соединения, вы можете использовать пул соединений (он должен существовать и для ODBC). Пул соединений проверит, что соединение «живое», прежде чем возвращать его приложению, например, см. Параметр validationQuery для Java DBCP .