Выявление SQLException из-за проблем с сетью - PullRequest
1 голос
/ 20 сентября 2011

Я занимаюсь разработкой веб-приложения, в котором используются 3 разные базы данных (Oracle & MSSQL).Это приложение содержит рамки весны и гибернации.В этом приложении, если базы данных выходят из строя или возникают какие-либо проблемы с сетью, мне приходится работать по-другому (при попытке доступа к базе данных).В настоящее время, если вышеупомянутый сценарий приходит, я получаю SQLException как наименьшую причину.Как я могу определить, что SQLException выброшено из-за проблемы сети или некоторого вопроса / проблемы с данными?

Ответы [ 2 ]

1 голос
/ 20 сентября 2011

Полагаю, вам просто нужно извлечь эту информацию из сообщения об исключении.Например, в случае Oracle выдается исключение SQLException со следующим сообщением:

Io exception: The Network Adapter could not establish the connection
1 голос
/ 20 сентября 2011

Проверьте отдельную документацию драйверов и посмотрите, какие коды ошибок генерируются в результате описанных вами ошибок

ОБНОВЛЕНИЕ

} catch (SQLException se) {
   int count = 1;
   while (se != null) {
       System.out.println("SQLException " + count);
       System.out.println("Code: " + se.getErrorCode());
       System.out.println("SqlState: " + se.getSQLState());
       System.out.println("Error Message: " + se.getMessage());

       se = se.getNextException();
       count++;
   }
}

, предоставляемых каждым поставщиком базы данныхих собственные коды ошибок и состояния, если вы проверите их, вы должны быть в безопасности.

...