Frage zu connection?

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich habe eine Klasse Datenbank. Diese baut wie folgt die Verbindung auf und erstellt ein paar PreparedStatements

Code:
private PreparedStatement pst;
public void connect(){
   Connection con = DriverManager.getConnection(....);
   ...
   pst = con.prepareStatement("SELECT * FROM test WHERE ID=?");
}

Jetzt habe ich folgendes Problem. Ich starte meinen Datenbankclient. Dieser baut die Verbindung auf. Alles OK. Danach stürzt mir die Datenbank ab und ich versuche dann wie folgt auf die Connection zuzugreifen:

Code:
public void select(){
  try{ 
    pst.clearParameters();
    pst.setLong(1,1);
    ResultSet rs = pst.executeQuery()
  }catch(...){
     ...
  }
}

Daraufhin wird mir ein com.mysql.jdbc.CommunicationsException: Communications link failure geworfen.

Jetzt würde vor dem ausführen des PreparedStatements jedoch gerne prüfen ob die Verbindung zur DB in Ordnung ist und wenn nicht ein erneutes connect() versuchen. Nur wie stelle ich das an. Eine Funktion wie con.isConnectionOk() habe ich nicht gefunden.

Bin neu in Java und bräuchte den richtigen Schubs.

Danke
 

Amenophis

Mitglied
Och, das ist ganz einfach - so einfach, dass keine Sau darauf kommt :cool:

Code:
System.out.println(con);

In der Konsole steht dann soetwas (Falls du per JdbcOdbc darauf zugreifts):

Code:
sun.jdbc.odbc.JdbcOdbcConnection@179953c

Das nach dem @-Zeichen ist deine Verbindung
 
M

maki

Gast
>> Danach stürzt mir die Datenbank ab

DAS ist dein Problem.

Woran liegt das?
 

ARadauer

Top Contributor
@Amenophis: das war ein scherz oder?

maki hat recht, das abstürzen müsste man abfangen,
und wie gilbert schon gemeint hat mit con.isClosed prüfen und gegebenen falls die verbindung wieder herstellen...

oder einen connection pool verwenden...
 
M

Michael038945

Gast
Hallo

werden PreparedStatements nicht mit call aufgerufen ?

pst = con.prepareStatement("SELECT * FROM test WHERE ID=?");
Beispiel:
Code:
        Connection c = Connector.getConnection();
        int wert = 0;
          try {
           c.setAutoCommit(false);                    
                java.lang.String sql = "{  ?  = call  DiesIstEinTest(?) }"; // (Datenbank) Procedure
                java.sql.CallableStatement call = c.prepareCall(sql);
                call.setInt("ID",<deine ID>);
                call.registerOutParameter(1, java.sql.Types.NUMERIC);
                call.executeUpdate();
                wert = call.getInt(1);
                call.close();
                c.commit();
                c.setAutoCommit(true);
        } catch (SQLException ex) {
           c.rollback();
          c.setAutoCommit(true);
        }
        return wert;
    }


natürlich mußt du auf der Datenbank auch eine Prozedure haben mit dem Namen (DiesIstEinTest)




Gruß Michael
 
G

Gast

Gast
Danke für die Tips,

werde es gleich umsetzen.

Bzgl.
> Danach stürzt mir die Datenbank ab.

Das war nur als Beispiel gemeint. Die DB stürzt mir natürlich nicht dauernd ab, es kann aber vorkommen, das der DB Server neu gestartet wird und dann eben mal die Connection für 30 Sekunden weg ist. Mir soll dann nicht das ganze Programm abstürzen sondern es soll einfach ein neuer Verbindungsaufbau durchgeführt werden.
 
G

Gast

Gast
Ein

con.isClosed()

geht leider nicht, da die Funktion nur true liefert wenn zuvor con.close() aufgerufen wurde. Da die Verbindungstrennung aber nicht durch Java sondern z.B. durch einen Neustart des DB Servers verursacht wurde ...

Jemand noch eine Idee?
 
M

maki

Gast
Wenn die DB weg ist, ist das schlecht.

Hochverfügbarkeitssysteme müssen damit umgehen, musst du das auch?
 

tfa

Top Contributor
Die (Teil-)Lösung ist wie schon gesagt ein Connection-Pool. Zum Beispiel DBCP von Apache. Wenn man mit DBs arbeitet, sollte man sowas immer verwenden.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Frage zu Connection.close() Datenbankprogrammierung 4
X Connection schließen oder speichern? Performance Frage Datenbankprogrammierung 7
G allgemeine JDBC-Connection Frage Datenbankprogrammierung 2
N Kleine Frage zu Connection Pooling mit DataSource Datenbankprogrammierung 2
M Frage zu Bundesliga-DB Datenbankprogrammierung 1
pkm Frage zu Encodingproblem bei einer Datenbankanbindung Datenbankprogrammierung 1
B Frage bei einer SQL Query Datenbankprogrammierung 3
B Frage zu Datenbank Design bei Events (ZenDesk) Datenbankprogrammierung 1
B SQLite Frage zu SQLite Datenbankverbindung Datenbankprogrammierung 7
M Frage zu JSON Datenbankprogrammierung 16
Psypsy Hibernate / JPA OneToOne MappedBy Frage Datenbankprogrammierung 2
R MySQL Frage zum Anlegen von Artikeln inkl. Verbindungen Datenbankprogrammierung 0
M Grundlegende Klassen-Design Frage Datenbankprogrammierung 0
P MySQL Frage zur Einbindung in ein Java Projekt Datenbankprogrammierung 2
I Frage zu Datenmodellierung Datenbankprogrammierung 3
J Normalisierung - Allgemeine Frage zur 3. Normalform (Eventuelle Abhängigkeit) Datenbankprogrammierung 4
F Normalisierung Datenbank Frage Datenbankprogrammierung 5
J Frage zu ResultSet Datenbankprogrammierung 3
W Frage zur Datenbankwahl bei Umstieg auf Java Datenbankprogrammierung 7
D Frage zu DISTINCT in SQL Datenbankprogrammierung 5
K Frage zur Datenprotokollierung bei DML Anweisungen Datenbankprogrammierung 3
K Frage zu SQL Datenbankprogrammierung 2
L PostgreSQL Hibernate-Frage Datenbankprogrammierung 2
K Frage zu Datenbankmodellierung Datenbankprogrammierung 15
D Generelle Frage zum Umgang mit Datensätzen Datenbankprogrammierung 5
L Frage zu UpdateQuery Datenbankprogrammierung 12
8 MySQL Kurze Frage zur Sicherheit Datenbankprogrammierung 9
D Frage zu INSERTS über mehrere Datenbanktabellen Datenbankprogrammierung 3
D Frage zu Ausführungsmöglichkeiten von SQL Befehlen Datenbankprogrammierung 13
D Frage zu SQL Syntax Datenbankprogrammierung 17
D Frage zu potenziellen Leerzeichen in einer Datenbank Datenbankprogrammierung 5
J mal wieder eine Frage zu parallelen Transaktionen.. Datenbankprogrammierung 2
V Frage zu Hibernate-Mapping Datenbankprogrammierung 11
N Allg. Frage zur Datenbankverbindung Datenbankprogrammierung 2
E einfache Frage bei DB-Zugriff Datenbankprogrammierung 11
S MySQL Frage zu LeftJoin Abfrage Datenbankprogrammierung 2
O eigentlich simple SQL Frage Datenbankprogrammierung 2
M Frage zu folgender Query in EJB-QL Datenbankprogrammierung 4
H JBoss: Frage zur Datasource in der ...-ds.xml Datenbankprogrammierung 4
F Frage zu Prepared Statement Datenbankprogrammierung 2
R hibernate Frage zu configFile-Pfad und Groß/Kleinschreibung von Postgres-Tabellen Datenbankprogrammierung 8
U Frage zum Erfassen von hinzufügten und entfernten Objekten Datenbankprogrammierung 9
M prinzipielle Frage zu Datenbanken und jars ... Datenbankprogrammierung 2
S Hibernate - spezielle Frage, n zu n Beziehung Datenbankprogrammierung 11
R Frage zu PreparedStatement/ResultSet Datenbankprogrammierung 16
J Frage zu Synchronisation bei parallelem Zugriff, speziell mit JPA Datenbankprogrammierung 2
F EclipseLink persistence.xml Frage Datenbankprogrammierung 11
N Frage zur Sicherheit von Konfigurationsdatei Datenbankprogrammierung 4
H performance frage Datenbankprogrammierung 9
G Frage zum Insert-Statement Datenbankprogrammierung 2
Antoras Design-Frage: Datenzuordnung zu verschiedenen Accounts Datenbankprogrammierung 2
T HSQL: verständnis Frage Datenbankprogrammierung 2
T Java JPA Frage bzgl. DISTINCT Datenbankprogrammierung 2
A Frage zu SQL-Abfrage Datenbankprogrammierung 2
G Frage zu SQL "WHERE IN (1, 2, 3. , N)" Datenbankprogrammierung 8
G Allgemeine Frage zu Datenbanklimits Datenbankprogrammierung 27
G Frage zu Hibernate und M:N Beziehung Datenbankprogrammierung 9
K HQL Frage Datenbankprogrammierung 10
D kurze Frage zu einem Query Datenbankprogrammierung 6
B Hibernate mit MySql - Verständniss Frage Datenbankprogrammierung 8
T Update-Frage Datenbankprogrammierung 11
E SQL-Frage (Löschen aller Datensätze) Datenbankprogrammierung 9
P Frage zu Performancetest einer Datenbank Datenbankprogrammierung 3
W Frage zum Umgang mit DB-Daten Datenbankprogrammierung 2
E Nochmal eine Datenbankabfrage Frage :-o (JOIN oder so) Datenbankprogrammierung 4
P frage zu "" bei INSERT STATEMENTS Datenbankprogrammierung 2
K frage zum ausführen eines INSERT statements Datenbankprogrammierung 16
L frage zu mySQL Datenbankprogrammierung 4
C Mal ne Frage an die Experten Datenbankprogrammierung 4
G Frage zum Datenbankdesign Datenbankprogrammierung 5
J DB Verbindung Design Frage Datenbankprogrammierung 5
M Datenbankanbindung in Java : Newbie-Frage Datenbankprogrammierung 2
U Grundsätzliche Frage Datenbankprogrammierung 4
S Frage zu INSERT Datenbankprogrammierung 2
X Wieder mal ne Frage ... Datenbankprogrammierung 15
Maxim6394 EclipseLink + SQLite | Unable to acquire a connection from driver [null] Datenbankprogrammierung 6
J PC-Start Problem JDBC Connection Datenbankprogrammierung 10
S Oracle DB-Connection in .jar file ändern Datenbankprogrammierung 11
yakazuqi MySQL MySQL Connection reset Datenbankprogrammierung 7
K Glassfish 4.1.1 Connection Pool u. Resource Ref Datenbankprogrammierung 20
OnDemand Hikari Pool Connection Validation Datenbankprogrammierung 18
Dimax MySQL Methodenaufruf mit Connection Übergabe Datenbankprogrammierung 8
D MySQL Connection richtig herstellen. Wie ? Datenbankprogrammierung 7
D Multiple Connection mit MySQL Datenbankprogrammierung 4
S Connection Pool Hikari Datenbankprogrammierung 7
P MySQL Connection Global Datenbankprogrammierung 13
J Connection Datenbankprogrammierung 1
F Brauche dringend Hilfe Java-Access Connection Datenbankprogrammierung 3
S New Connection Wizard / NetBeans Datenbankprogrammierung 0
T NoSQL Connection für die Thesis [GWT] Datenbankprogrammierung 1
M Connection erstellen Datenbankprogrammierung 1
F Monitoring DB Connection Pool Datenbankprogrammierung 3
H JDBCODBC - Connection-Objekt Datenbankprogrammierung 3
E MySQL SQL - wann connection schließen Datenbankprogrammierung 2
R HSQLDB Connection refused Datenbankprogrammierung 2
B JDBC Connection Fehler Datenbankprogrammierung 8
B JDBC-Connection: Data source name too long Datenbankprogrammierung 3
crashfinger jdbc-connection mit jre7 funktioniert nicht Datenbankprogrammierung 5
reibi Derby/JavaDB Connection refused Datenbankprogrammierung 14
S Ressourcenverbrauch Connection Open/Close Datenbankprogrammierung 11

Ähnliche Java Themen

Neue Themen


Oben