Я хочу обнаружить, когда база данных Oracle недоступна. Эти приведенные ниже коды ошибок взяты из http://docs.oracle.com/cd/E23943_01/apirefs.1111/e13952/pagehelp/JDBCjdbcdatasourcesjdbcdatasourceconfigconnectionpooltitle.html:
■ 3113: "конец файла на канале связи"
■ 3114: "не подключен к ORACLE"
■ 1033: "Инициализация ORACLE или завершение работы"
■ 1034: "ORACLE недоступен"
■ 1089: "немедленное завершение работы - никаких действий не разрешено"
■ 1090: "завершение работы - соединение не разрешено"
■ 17002: "Исключение I/O"
Я бы хотел обнаружить без использования ввода ресурсов DataSource без сервера Glassfish, когда база данных Oracle не работает. Ниже приведен пример кода:
public class Database {
public static void main(String[] args) {
try {
Connection connection = DriverManager.getConnection("url", "username", "password");
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(new String("SELECT name FROM NAMES");
}
catch(SQLException e) {
// use the error code defined above to detect database is down
}
}
}
Так как это отдельное приложение, могут ли эти коды ошибок использоваться и будут ли они работать или есть некоторые другие коды ошибок, которые работают для отдельных приложений?
Эти коды связаны с (и возвращаются) драйвером JDBC и должны работать независимо от того, где развернут драйвер JDBC (будь то автономное приложение или сервер приложений).