[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Jan 2008
    Beiträge
    90

    SSL-Problem mit jdbc

    Hallo!

    Ich habe ein Riesenproblem mit dem jdbc-Treiber um eine MS SQL Server 2005 Datenbank von der i5 aus anzusprechen.
    Ich habe die Ausgabe der Java-Konsole mit OVRDBF STDERR TEST/STDERR in eine Datei umgeleitet und erhalte da folgenden Fehlereintrag:

    02.10.2008 14:21:10 com.microsoft.sqlserver.jdbc.TDSChannel enableSSL

    WARNUNG: TDSChannel ( ConnectionID:1
    TransactionID:0x0000000000000000)
    SSL handshake failed: null

    com.microsoft.sqlserver.jdbc.SQLServerException: Der Treiber konnte keine sichere Verbindung mit SQL Server über die SSL (Secure Sockets Layer)-Verschlüsselung herstellen. Fehler: null.

    Ich habe bereits in vielen Foren gestöbert (auch hier), aber leider hat nichts geholfen. Weder der Umstieg auf sqljdbc_1.1.jar, noch ein anderer Treiber.

    Vom Windows-PC aus habe ich das Tool DBVisualizer (Free 6.0.14) im Einsatz, mit dem ich ebenfalls über einen jdbc-Treiber auf den SQL-Server zugreife. Von da aus gingen bisher alle Treiber, die ich probiert habe.

    Nach über zwei Tagen vergeblichen Herumprobierens bin ich nahe am Verzweifeln und bin für jeden Rat dankbar.

    Mit freundlichen Grüßen

    Günter Bretterebner

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    So wie ich das sehe brauchst du keine SSL-Verbindung zum SQL-Server.
    Versuche es mal ohne SSL.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jan 2008
    Beiträge
    90
    Hallo!

    Danke für die schnelle Antwort.

    Aber wo sage ich dem Treiber, der JVM, der i5 oder welchem Ding auch immer, daß ich kein SSL will?

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

    gib im Connection-String mal die Option encrypt=false an. Standardmäßig wird beim SQL-Server 2005 glaube ich die Verschlüsselung aktiviert.

    Gruß,
    KM

  5. #5
    Registriert seit
    Jan 2008
    Beiträge
    90
    Zitat Zitat von KM Beitrag anzeigen
    Hallo,

    gib im Connection-String mal die Option encrypt=false an. Standardmäßig wird beim SQL-Server 2005 glaube ich die Verschlüsselung aktiviert.

    Gruß,
    KM
    Hab ich auch schon probiert. Soweit ich es bis jetzt verstanden habe, steuert dieser Parm nur, ob später die Daten verschlüsselt übertragen werden.
    Die Anmeldung scheitert aber schon an der SSL-Verbindung.

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Jan 2008
    Beiträge
    90
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Danke, da hab ich das mit der verschlüsselten Anmeldung gelesen und das der Parm "encrypten=false" nur für das was danach gilt, gelesen.

    Werd mir das mit der JRE-Konfiguration für das JSSE nochmal genau durchlesen und anschauen.

    Es ist halt mühsam, wenn man von der grünen Wiese (bzw. Schirm) kommt und in so ein, meiner Meinung nach, komplexes Gebiet vorstößt.

    Günter

  8. #8
    Registriert seit
    Jan 2008
    Beiträge
    90
    Ich habe noch eine Frage zum Speicherort des sqljdbc.jar - Files.
    Da ich mittlerweile so ziemlich alle Versionen von 1.0 über 1.1, 1.2 bis 2.0 des Microsoft JDBC-Treiber für SQL Server 2005 ausprobiert habe und nichts geholfen hat, stellt sich mir die Frage, ob die überhaupt verwendet/aufgerufen wurden.

    Ich bin nämlich jetzt hergegangen und habe mit wrkenvvar einen falschen Eintrag in CLASSPATH zum Treiber hin gemacht (ich setze das im RPG). Und siehe da, es hat trotzdem gleich nicht funktioniert wie sonst auch.

    Eigentlich bin ich davon ausgegagnen, daß der Treiber in dem im CLASSPATH angegeben Pfad liegen sollte:
    /QIBM/UserData/Java400/ext/sqljdbc.jar

    Oder irre ich mich da.


    Danke,
    Günter

  9. #9
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ich würde die Finger von dem Wackelhaufen java calls aus RPG lassen. Das wird nie stabil, da die JVM implizit gestartet wird (und wenn das im Job ein anderer Aufruf gemacht hat, dann passts wieder nicht). ich würde auch irgendwelche Treiber nicht global vernageln (korrekter Weise müsste der auch in ...ProdData... liegen), über welchen Weg auch immer.
    Ein Java Environment gehört mit java gestartet, da kann man den Classpath per Parameter einstellen und auch z.B.: -verbose angeben, damit man sieht, was da wirklich aufgerufen wird. Wenn ich das aus RPG aufrufen will, dann macht man da einen Serverdienst draus und lässt den asynchron per DataQ oder MSGQ mit dem RPG Teil kommunizieren. Dann wird das ganze auch performat, skalierbar, stabil und wartbar.
    Zu letzterem habe ich ein Framework AppServer4RPG auf meiner Homepage und bei Sourceforge.net als OpenSource veröffentlicht.

    D*B

    Zitat Zitat von gue_br Beitrag anzeigen
    Ich bin nämlich jetzt hergegangen und habe mit wrkenvvar einen falschen Eintrag in CLASSPATH zum Treiber hin gemacht (ich setze das im RPG). Und siehe da, es hat trotzdem gleich nicht funktioniert wie sonst auch.

    Eigentlich bin ich davon ausgegagnen, daß der Treiber in dem im CLASSPATH angegeben Pfad liegen sollte:
    /QIBM/UserData/Java400/ext/sqljdbc.jar

    Oder irre ich mich da.


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

  10. #10
    Registriert seit
    Jan 2008
    Beiträge
    90
    Zitat Zitat von BenderD Beitrag anzeigen
    ich würde die Finger von dem Wackelhaufen java calls aus RPG lassen. Das wird nie stabil, da die JVM implizit gestartet wird (und wenn das im Job ein anderer Aufruf gemacht hat, dann passts wieder nicht). ich würde auch irgendwelche Treiber nicht global vernageln (korrekter Weise müsste der auch in ...ProdData... liegen), über welchen Weg auch immer.
    Ein Java Environment gehört mit java gestartet, da kann man den Classpath per Parameter einstellen und auch z.B.: -verbose angeben, damit man sieht, was da wirklich aufgerufen wird. Wenn ich das aus RPG aufrufen will, dann macht man da einen Serverdienst draus und lässt den asynchron per DataQ oder MSGQ mit dem RPG Teil kommunizieren. Dann wird das ganze auch performat, skalierbar, stabil und wartbar.
    Zu letzterem habe ich ein Framework AppServer4RPG auf meiner Homepage und bei Sourceforge.net als OpenSource veröffentlicht.

    D*B
    ------------------------------------------
    Last edited by gue_br; 06-10-08 at 06:34. Grund: gelöscht!

  11. #11
    Registriert seit
    Jan 2008
    Beiträge
    90
    Danke,

    Und was schließe ich jetzt daraus?
    Wir haben schon eine JDBC-Verbindung zu einer Oracle-DB und einer SQL-Server 2000 erfolgreich zum Laufen gebracht. Mag sein, daß es bessere Methoden gibt. Aber nach dem die div. Fremdfirmen unfähig sind, ordentliche Schnittstellen bereitzustellen, bleibt natürlich alles bei uns (der i5-Truppe) hängen.
    Auf die Schnelle (Anfang Nov.) soll eine Schnittstelle gebastelt werden, denn dann geht ein PC-Fremdsystem in Echtbetrieb und ich hänge jetzt schon drei Tage mit dem blöden jdbc-Zugriff herum.

    Ob es angesichts der Tatsachen sinnvoll ist, mir jetzt noch Java oder sonstiges Frame-Zeug reinzuziehen, sei dahingestellt.

    Ich bin mir sicher, es klemmt nur an einer Kleinigkeit.
    Dachte mir halt, vielleicht hat jemand von den Profis hier im Forum einen brauchbaren Tipp.

    Danke,
    Günter

  12. #12
    Registriert seit
    Oct 2004
    Beiträge
    251
    Welche Javaversion wird verwendet?

    Ich habe mal kurz bei mir angetestet und kann die Infos aus dem Internet bestätigen:

    Mit der Version 1.2 der JDBC-Treiber haben manche Java 1.4 Implementierungen (dazu gehört auch die i5) das SSL Problem. Mit den Treibern davor (1.0, 1.1) hatte ich keine Probleme. Durch Konfigurationseinträge sollte sich das aber auch für die Version 1.4 fixen lassen (laut Internetforen, beschrieben für Linux).

    Mit der (Java) Version 1.5 hatte ich mit keinem Treiber ein Problem.

    Getestet hab ich in der QSH:
    Code:
     java -Djava.version=1.4 -cp MSSQL.jar:ext/sqljdbc_1.2/deu/sqljdbc.jar com.at.od.kattools.TestMSSQL
    Die Default-JVM findet man normalerweise mit
    Code:
    java -version
    heraus.

    Noch zum Pfad /QIBM/UserData/Java400/ext/sqljdbc.jar

    Das funktioniert prinzipiell und ist auch recht reizvoll, weil einfach. Diese Jar's sind 1.) heiße Kanditaten um beim Maschinenwechsel vergessen zu werden.
    2.) von jedem Javapgramm zu durchsuchen, egal ob sie immer gebraucht werden oder nur für ein paar bestimmte Fälle. (nicht so relevant im Serverbetrieb, aber langsamer Start bei Einzelaufrufen).


    /Robert

Similar Threads

  1. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 10:58
  2. Problem mit Steuerzeichen in Datenbank?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 26-10-06, 10:07
  3. Merkwürdiges Problem in VRPG
    By Flappes in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 06-10-06, 08:39
  4. Java, JDBC, iSeries und Tschechische/Russische/Chinesische Zeichen
    By Christian.Hesse in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 04-08-06, 10:04
  5. Telnet, SSL und DCM :-(
    By Felidae in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 04-08-06, 08:33

Berechtigungen

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