Я пытаюсь установить сетевой тайм-аут моей базы данных Oracle. Соединение в Java. Однако я получаю сообщение об ошибке. Ниже приведен пример кода, и это соответствующее исключение.Настройка тайм-аута сети для подключения JDBC
try{
conn = new Database("oracle").connect();
conn.setNetworkTimeout(null, 30000); //I don't have an Executor, so the field is set to null
System.out.println(Switch.date() + " -> Database Connection Initialized");
}
catch(SQLException ex){
Logger.getLogger(Switch.class.getName()).log(Level.SEVERE, null, ex);
}
Исключение я получаю:
Exception in thread "main" java.lang.AbstractMethodError:oracle.jdbc.driver.T4CConnection.setNetworkTimeout(Ljava/util/concurrent/Executor;I)V
at ke.co.smart.Switch.<init>(Switch.java:524)
at ke.co.smart.Switch.main(Switch.java:161)
Java Result: 1
Я считаю, что он должен делать с методом является абстрактным (читай AbstractMethodError). Что может вызвать эту ошибку, поскольку я только реализовал метод, который, как я думаю, уже определен в Java, и, следовательно, не отказывается компилировать.
N.B .: Java не позволяет составлять конкретные классы, если существуют абстрактные методы.
Какова версия драйвера Oracle? Возможно, более новая версия реализует этот метод. (примечание: номера в имени файла «ojdbc6» или «ojdbc5» являются ** не ** версией драйвера). –
Если вы действительно хотите решить проблемы с DCD (обнаружение мертвых соединений), вам следует переключиться на драйверы OCI и настроить его на уровне OCI (в sqlnet.ora). «Лучший» способ - использовать технику TCP keepalive. Но для этого нужна помощь администраторов баз данных и Unix. – ibre5041