[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    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

  2. #2
    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

  3. #3
    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/

  4. #4
    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!

  5. #5
    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

  6. #6
    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

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Ich mache das seit einiger Zeit mit Oracle ohne Probleme (in beide Richtungen).
    Hierzu habe ich den Treiber in mein Home-Verzeichnis kopiert und entsprechend im CLASSPATH angegeben.
    Der Treiber wird automatisch gefunden.

    Ich benutze als Basis die Programme von Dieter Bender mit Modifikation.
    Das schöne daran ist, dass ich die Programme auch unter z.B. Eclipse testen kann.
    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

  8. #8
    Registriert seit
    Jan 2008
    Beiträge
    90
    Danke Fuerchau!

    Wir haben auch mit Oracle (in beiden Richtungen) angefangen und dann von einer SQL-Server 2000 gelesen. Jetzt sollte eben SQL-Server 2005 in beiden Richtungen dazukommen.

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

    An Robert:
    Wir verwenden Java 1.5 auf i5.

  10. #10
    Registriert seit
    Jan 2008
    Beiträge
    90

    L Ö S U N G

    Danke noch mal an alle, die gepostet haben.

    Ich habe das Problem gelöst und es liegt meiner Meinung nach an M$.

    Also es gibt offenbar mehrere Arten, wie man den Connect angeben kann. Ich habe 3 Varianten jeweils gegen 2000 und 2005 getestet. Gegen 2000 gingen 2 von drei Möglichkeiten, gegen 2005 nur eine.

    Der Clou ist, daß in der Klassenangabe (oder wie immer der erste Teil im Connect heißt) ein Murx drinnen ist (ich möchte nicht wissen, wieviel Whiskey die MS-Programmierer da intus hatten, als sie das verbrochen haben).

    Mal heißt er
    com.microsoft.jdbc.sqlserver.SQLServerDriver
    und dann wieder
    com.microsoft.sqlserver.jdbc.SQLServerDriver

    Ich habe kurz zusammengestellt, welche Kombinationen laufen (JDBC-Version 2.0 von Microsoft)

    SQL-Server 2000:
    =============

    1.)
    conn = JDBC_ConnProp('com.microsoft.jdbc.sqlserver.SQLSer verDriver'
    :'jdbc:microsoft:sqlserver://<Server>:1433' ...

    Verbindung ok (conn = 8)

    2.)
    conn = JDBC_ConnProp('com.microsoft.sqlserver.jdbc.SQLSer verDriver'
    :'jdbc:sqlserver://<Server>:1433' ...

    Hier wurde die Connect-Url (com.microsoft...) geändert UND der Treiber (zweiter Parm)

    Verbindung ok (conn = 8)

    3.)
    Wird beim zweiten Parm 'jdbc:microsoft:sqlserver://<Server>:1433' wie bei 1.) eingetragen, geht es nicht mehr

    conn = JDBC_ConnProp('com.microsoft.sqlserver.jdbc.SQLSer verDriver'
    :'jdbc:microsoft:sqlserver://<Server>:1433' ...

    keine Verbindung (conn =0)


    SQL-Server 2005:
    =============

    1.)
    conn = JDBC_ConnProp('com.microsoft.jdbc.sqlserver.SQLSer verDriver'
    :'jdbc:microsoft:sqlserver://<Server>:1433' ...

    Verbindung ok (conn = 8)

    2.)
    conn = JDBC_ConnProp('com.microsoft.sqlserver.jdbc.SQLSer verDriver'
    :'jdbc:sqlserver://<Server>:1433' ...

    Hier wurde wieder die Connect-Url (com.microsoft...) geändert UND der Treiber (zweiter Parm)

    keine Verbindung (conn = 0)

    3.)
    Wird beim zweiten Parm 'jdbc:microsoft:sqlserver://<Server>:1433' wie bei 1.) eingetragen, geht es nicht mehr

    conn = JDBC_ConnProp('com.microsoft.sqlserver.jdbc.SQLSer verDriver'
    :'jdbc:microsoft:sqlserver://<Server>:1433' ...

    keine Verbindung (conn = 0)

    ================================================== =============================

    Da mir dieses Herumgehangel eher unheimlich als sympatisch ist, verwende ich jetzt den OpenSource JTDS-Treiber.

    Version 1.2.2
    SQL-Server 2000 und 2005:
    =============

    1.)
    conn = JDBC_ConnProp('net.sourceforge.jtds.jdbc.Driver'
    :'jdbc:jtds:sqlserver://<Server>:1433' ...

    Einige dieser Infos habe ich von der Seite SQL mit Java von Thorsten Horn

    Nochmal Danke an alle und sorry für den langen Beitrag,
    Günter

  11. #11
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    kaum macht mans richtig,schon funzt es:
    - die voll qualified Treiberklasse wird bei der Registrierung des Treibers verwendet
    - welche Treiberklasse verwendet wird, entscheidet das Sub Protokoll bei der URL (hinter dem Doppelpunkt nach :jdbd), selbiger muss irgendwann (!!!) mal registriert wordensein
    - welche Implementierung (Version) dann verwendet wird, entscheidet der Classpath
    => ohne Java Kenntnisse und dann auch noch mit RPG JNI wird das eher nix q.e.d

    D*B
    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. 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
  •