| 

.NET C# Java Javascript Exception

2
Ich möchte zur Laufzeit überprüfen ob die SQL Verbindung noch intakt ist? Wie geht das?
11.05.2011
Grauma 21 2
4 Antworten
0
Ich meine natürlich hibernate exceptions.
11.05.2011
Grauma 21 2
0
Die standard JAVA-API bringt keine Methoden dafür mit.

Netter Artikel hierzu:
auf www.builderau.com.au
12.05.2011
mindengine 83 1 5
0
Spontan würde mir dazu einfallen einfach mal eine Abfrage auszuführen und kucken ob überhaupt eine Exception auftritt: So in der Art:
try{
//Query ausführen - Bsp. "Select count(*) from demotable;"
}
catch(Exception e){
System.out.println(e.getMessage());
}


Ich weiß nicht, ob es für den Anwendungsfall vielleicht sogar Sinn macht, ein einfaches "Select 1" auszuführen ( - Bei älteren postgres, oder mssql (bin ich mir nicht mehr ganz sicher) Datenbanken lieferte das manchmal ein Ergebnis zurück, obwohl die DB hinten dran futsch war. Dadurch konnte zwar der Zustand der Verbindung überprüft, jedoch nicht die Funktionalität der DB sicher gestellt werden).

Gruß

limepix
12.05.2011
limepix 81 4
0
Es gibt keinen mir bekannten Anwendungsfall, in der solch eine Prüfung notwendig ist.

Aus meiner Sicht ist folgende Vorgehensweise sinnvoll:

Normal arbeiten, als wäre immer alles in Ordnung. Falls irgendetwas mit SQLException kommt, erst versuchen ein Rollback durchzuführen, dann versuchen die Connection zu schließen und danach neue Verbindungversuche ausführen.

Eine Prüfung, ob die DB noch vorhanden ist, ist eh nur zum Zeitpunkt der Prüfung gültig. Danach weiß man eh nicht, ob der nächste Aufruf funktioniert oder nicht. Deshalb hat diese Prüfung einen Aggregatzustand kurz vorm verdampfen... ist also überflüssig.

Die "regelmäßige" Konsultierung der DB kann Sinn machen, wenn zwischen Transaktionen sehr viel Zeit vergeht, sodass man in das Problem der Closed Sessions läuft. Aber das hat erstmal nichts mit einer Prüfung zu tun, sondern ist ein Proaktives Verhalten der Anwendung, um die Session am laufen zu halten. Aber selbst diese Anforderung wäre mit dem o.g. Verfahren erschlagen.
12.05.2011
oopexpert 455 1 8

Stelle deine Java-Frage jetzt!