Probleme mit DriverManager.getConnection(..) - Endlosschleife, Java Absturz, Keine Exception

luckoor

Mitglied
Hi Leute,

Hier erstmal ein kleiner Codeausschnitt:

Java:
try{
		connection = DriverManager.getConnection(url,userid,password);
		}catch (SQLException ex) {
	            // Fehler behandeln
				System.out.println("Bin in SQLException.");
	            System.out.println("SQLException: " + ex.getMessage());
	            System.out.println("SQLState: " + ex.getSQLState());
	            System.out.println("VendorError: " + ex.getErrorCode());
	            control = -2;
	            return control;
	        }catch (Exception e){
	        	control = -2;
	        	System.out.println("Bin hier in Ex1");
	        	return control;
}
Nun zu meinen Problem. Es funktioniert alles einwandfrei, soweit url, userid, und password korrekt eingegeben wurden sind. Wenn ich jedoch jetzt bei der url irgendeinen mist reinschreibe, läuft er da in einer endlosschleife herum und Java stürzt ab. Er wirft nichtmal eine Exception.

Laut Dokumentation sieht der Befehl so aus:

Java:
getConnection

public static Connection getConnection(String url,
                                       String user,
                                       String password)
                                throws SQLException

    Attempts to establish a connection to the given database URL. The DriverManager attempts to select an appropriate driver from the set of registered JDBC drivers.

    Parameters:
        url - a database url of the form jdbc:subprotocol:subname
        user - the database user on whose behalf the connection is being made
        password - the user's password 
    Returns:
        a connection to the URL 
    Throws:
        SQLException - if a database access error occurs

Wieso wirft er mir, dann keine SqlException aus bzw schießt sich aber dabei total ab, wenn die url nicht stimmt???? Eine Datenbankverbindung kann bei einer sinnlosen url ja nicht hergestellt werden. Er müsste doch eigentlich irgendeine Exception werfen oder kann man sowas nicht abfangen??? Ich steh gerade voll auf dem Schlauch haha^^.

Weiß jemand Rat von euch???


Mit freundlichen Grüßen

luckoor
 
Er bleibt an dieser Stelle connection = DriverManager.getConnection(url,userid,password); einfach hängen und lädt und lädt und lädt, er geht nicht weiter im Quellcode, es passiert nichts, als ob er sich in einer endlosschleife befindet.

Edit: ich habe ihn jetzt die ganze zeit laufen lassen, und nach 5minuten oder so wirft er erst die exception..... kann man das irgendwie beheben? ich kann doch den benutzer nicht solange warten lassen.
 
Zuletzt bearbeitet:
Gute Idee bei Drivermanager mal nachzuschauen, was es da so für methoden gibt. Drivermanager.setLoginTimeout(int seconds) ist auch die Methode die dafür zuständig ist. Jedoch beträgt die Zeit 0, wenn diese nicht gesetzt wird. Also ist schon optimal eingestellt. Auch wenn ich einen Wert von 1 sekunde einstelle ändert sich nichts daran, dass er gute 5 minuten braucht um eine SQLException bei DriverManager.getConnection(url,userid,password); rauszuhauen, wenn ich eine sinnlose url eingebe. Ich bin einfach nur verwirrt.


Edit:

ich hab gerade etwas anderes festgestellt. Damit ich auf die DB im Internet zugreifen kann brauch ich einen VPN Zugang. Ist dieser aus braucht es so 20 sekunden bis die Fehlermeldung erscheint. Ist er an und ich veränder die Adresse des hosts, sprich ich mach noch einen buchstaben hinten dran, brauch er die 5 Minuten, andernfalls bei einer andereren Adresse braucht er auch ungefähr 20 sekunden. Komisch... Aufjedenfall sind die 20sec besser als die 5 Minuten, nur das das Problem trotzdem bestehen bleibt, falls vpn benötigt wird und sich jemand bei der korrekten Adresse vertippt. Ich muss das dann nochmal bei einer datenbank ohne vpn im internet testen.

Edit2:
es ist s***** egal was für url drin steht, je nach dem, manchmal gehts schneller (20 sek) und manchmal brauchter halt wieder seine 5 minuten um eine SQLException rauszuhauen 😡 und mit vpn hat das auch nichts zu tun.
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben