[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    Hallo Robert,

    danke für Deine Tips. Ich habe mir jetzt folgendermaßen beholfen. Ich weiß jetzt zwar nicht wie "elegant" das ist, aber es funktioniert zumindest. Vor dem Zugriff auf den SQL-Server führe ich folgendes aus:

    Code:
        if (validateConnection(sq_conn) == false) {
                      // Verbindung zur SQL-Datenbank aufbauen
                      String sq_driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
                      String sq_url = "jdbc:microsoft:sqlserver://" + sq_server + ":1433;databaseName=" + sq_database;
                      Class.forName(sq_driver);
                      sq_conn = DriverManager.getConnection(sq_url, sq_user, sq_pwd);
    
                      // Statement-Objekte erzeugen
                      sq_stmt_table = sq_conn.createStatement();
                      sq_stmt_in = sq_conn.createStatement();
                      sq_stmt_out = sq_conn.createStatement();
                      sq_stmt = sq_conn.createStatement();
                      }
    
        //
        // Prüfen, ob die Verbindung zum SQL-Server besteht
        //
        public static boolean validateConnection(Connection sq_conn) {
    
            try{
                sq_conn.getMetaData();
                }
    
            catch(Exception e) {
                return false;
                }
            return true;
        }
    Die Sache mit den Connection Pools müsste ich mir auch mal genauer anschauen. Hab auch gelesen, dass es damit funktionieren müsste. Hab aber auf die Schnelle kein Beispiel gefunden wie ich das bei mir einbauen müsste.

    Gruß,
    KM

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    hier findest du einen Connection Pool:
    Overview - Commons DBCP
    Beispiele zur Einbindung sind entweder bei Apache, oder über google sicher zu finden und wenn man das ohne JNDI, DataSource und jedes Gedöns macht, dann hat man das recht schnell erledigt. Solltest du auf Probleme stoßen, ich habe da sicher auch irgendwo ein Beispiel und wenn ich mal Lust zum kramen habe...

    mfg

    Dieter Bender

    Zitat Zitat von KM Beitrag anzeigen
    Hallo Robert,

    danke für Deine Tips. Ich habe mir jetzt folgendermaßen beholfen. Ich weiß jetzt zwar nicht wie "elegant" das ist, aber es funktioniert zumindest. Vor dem Zugriff auf den SQL-Server führe ich folgendes aus:

    Code:
        if (validateConnection(sq_conn) == false) {
                      // Verbindung zur SQL-Datenbank aufbauen
                      String sq_driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
                      String sq_url = "jdbc:microsoft:sqlserver://" + sq_server + ":1433;databaseName=" + sq_database;
                      Class.forName(sq_driver);
                      sq_conn = DriverManager.getConnection(sq_url, sq_user, sq_pwd);
    
                      // Statement-Objekte erzeugen
                      sq_stmt_table = sq_conn.createStatement();
                      sq_stmt_in = sq_conn.createStatement();
                      sq_stmt_out = sq_conn.createStatement();
                      sq_stmt = sq_conn.createStatement();
                      }
    
        //
        // Prüfen, ob die Verbindung zum SQL-Server besteht
        //
        public static boolean validateConnection(Connection sq_conn) {
    
            try{
                sq_conn.getMetaData();
                }
    
            catch(Exception e) {
                return false;
                }
            return true;
        }
    Die Sache mit den Connection Pools müsste ich mir auch mal genauer anschauen. Hab auch gelesen, dass es damit funktionieren müsste. Hab aber auf die Schnelle kein Beispiel gefunden wie ich das bei mir einbauen müsste.

    Gruß,
    KM
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    Danke, das werde ich mir bei Gelegenheit mal anschauen.

    Ich habe auch gesehen, dass es z.B. bei MySQL den Parameter "autoReconnect" gibt. Beim MSSQLServer gibt's den aber nicht.

    Außerdem brauche ich in meiner jetzigen Applikation nicht mehrere Verbindungen, sondern ich brauche nur dann eine neue Verbindung, wenn der SQL-Server neu gestartet wird. Dafür reicht mir erstmal meine jetzige Lösung.

    Gruß,
    KM

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    ein ConnectionPool kann auch die Größe 1 haben und macht mehr als nur Connections aus einem Pool rausgeben (je nach Implementierung). Auf diesem Weg wird das gesamte Connection Handling zentralisiert und Standard Anforderungen (wie validate, timeout etc.) werden durch eine Standard Komponente abgefackelt (die meist besser und komfortabler ist als eigene Handarbeit).
    Das ist ja der immense Unterschied zwischen RPG und Java, dass es bei Java Unmengen von verwendbaren Komponenten höchster Qualität gibt, da sollte man seine Arbeitsweise drauf einstellen und sich ein wenig abgewöhnen alles selber machen zu wollen.

    Dieter Bender

    Zitat Zitat von KM Beitrag anzeigen
    Danke, das werde ich mir bei Gelegenheit mal anschauen.

    Ich habe auch gesehen, dass es z.B. bei MySQL den Parameter "autoReconnect" gibt. Beim MSSQLServer gibt's den aber nicht.

    Außerdem brauche ich in meiner jetzigen Applikation nicht mehrere Verbindungen, sondern ich brauche nur dann eine neue Verbindung, wenn der SQL-Server neu gestartet wird. Dafür reicht mir erstmal meine jetzige Lösung.

    Gruß,
    KM
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Verbindungsabbruch?
    By mott in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 23-11-06, 18:43
  2. Verbindungsabbruch AS/400
    By CaddyMajor in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 10-01-05, 14:03
  3. Verbindungsabbruch bei Client Access Express
    By KM in forum IBM i Hauptforum
    Antworten: 12
    Letzter Beitrag: 26-11-04, 13:39

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •