У меня очень странное поведение. Приложение java создает соединение (java.sql.Connection) с Oracle db, успешно. Когда я пытаюсь выполнить заявление, я получил:Соединение с Oracle закрывается
java.sql.SQLRecoverableException: Соединение закрыто
исключение. Это как приложение создает соединение (как и в старые времена):
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:orcl", "usr", "pwd");
соединение не закрывается (почти намеренно), поскольку до выхода из программы (в конце концов блок, как учитель сказал нам). Если я использую этот метод, чтобы получить соединение,
protected Connection getConn() throws Exception {
if(conn == null || conn.isClosed()) {
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:orcl", "usr", "pwd");
}
return conn;
}
все работает отлично. Когда я получаю соединение, метод проверяет его близость и воссоздает новый. Я не могу понять, что происходит. Почему соединение закрывается? ТИА.
Франческо
Можете ли вы разместить больше кода. Необходимо знать объем подключения. –
Это приложение java старого стиля, а не одно предприятие. 'Connection conn 'является частным атрибутом суперкласса моего класса' main (String [] args) ', который получает' conn' методом getter суперкласса ('getConn'). Извините, я не могу опубликовать код. – Francesco
Можете ли вы опубликовать полный след стека исключения? –