[NEWSboard IBMi Forum]
Seite 3 von 5 Erste ... 2 3 4 ... Letzte
  1. #25
    Registriert seit
    Oct 2004
    Beiträge
    240
    Zitat Zitat von Ottersberg Beitrag anzeigen
    ...Wie man etwas als Dienst implementiert auf der iSeries weiß ich zwar nicht, aber vielleicht unser iSeries-Mann.
    Damit ist gemeint, dass das Javaprogramme 1x Tag gestartet und auf seine Arbeit wartet. Dadurch entfällt der ganze JIT-Teil bei den Folgeaufrufen.

    Der einfachste Weg mit dem Javaprogramm (aus RPG/CL/Cobol) zu kommunzieren, ist über DataQueues.

    Komplizierter wird es, wenn es nicht die Kommunikation keine Einbahnstrasse sein soll. Leider gibt es kein "Rahmenwerk" für die Java zu 3GL Kommunikation, sodass wohl jeder seine eigene Lösung hat.

    Noch ein Vergleich:
    Wenn eine Java-PDF-Wandlung vom "Stand aus" aufrufe, braucht sie ca. 30 Sekunden für das Umwandeln der Spooldatei. Der vorgestartete Serverdienst (über DataQueue) macht das in Sekundenbruchteilen!

    /Robert

  2. #26
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    vielleicht sollten wir das mal ändern und eine Opensource Projekt hierzu aufmachen, ich würde meinen Java DataQ Listener einbringen - ich plane eh' den unter GNU License zu stellen

    D*B

    Zitat Zitat von RobertPic Beitrag anzeigen
    Leider gibt es kein "Rahmenwerk" für die Java zu 3GL Kommunikation, sodass wohl jeder seine eigene Lösung hat.
    /Robert
    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. #27
    Registriert seit
    Apr 2008
    Beiträge
    83
    Ich habe das Prinzip verstanden. Das wäre auf jeden Fall besser, als das Programm jedesmal aufzurufen, wenn es etwas tun muss. Ich werde mich da mal einlesen und das Programm später umstellen. Fürs erste reicht das regelmäßige aufrufen aus.

  4. #28
    Registriert seit
    Jul 2008
    Beiträge
    20

    Unhappy

    Hallo!

    Ich bekomme auch folgenden Fehler:
    com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
    WARNUNG: TDSChannel ( ConnectionID:1 TransactionID:0x0000000000000000) SSL handshake failed: null

    Ich habe schon verschiedenste Treiber ausprobiert, aber keiner funktioniert.
    (1.1 , 1.2 , JTDS)

    Enweder kommt die Fehlermeldung von oben, oder "Fehler bei der Anmeldung von Benutzer".

    Eigentlich müssten doch alle Zusatzprogramme installiert sein, um eine SSL Verbindung zu dem SQL Server 2005 herzustellen:

    5722AC3 *INSTALLED Crypto Access Provider 128-bit
    5722JC1 *COMPATIBLE Toolbox for Java
    5722JV1 *COMPATIBLE Developer Kit for Java
    5722JV1 *COMPATIBLE Java Developer Kit 1.3
    5722JV1 *COMPATIBLE Java Developer Kit 1.4
    5722JV1 *INSTALLED Java Developer Kit 1.5
    2MEBEFF *INSTALLED Signature/Encryption


    Hier der Code usw.
    MC Press Online - Query Remote Database Tables from the iSeries Using SQL and Java

    Gruß und Frohes Neues Jahr,
    Henning

  5. #29
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... das sieht nach einem Problem aus, dass mit dem verwendeten Treiber und der Java Umgebung zusammenhängt. Das sollte mit einer älteren Treiber Version oder einem alternativen Treiber eines anderen Herstellers zu lösen sein. (Auch Treibereinstellungen beim Connect könnten helfen, wenn man Diskussionen in anderen Foren glauben darf).
    Ansonsten wäre es natürlich sinnvoller den eigenen Code und die verwendete URL zu posten statt eines Artikels!
    Dennoch rate ich von solchen Wackelhaufen ab, das krankt an den selben Ecken wie die direkten RPG Aufrufe:
    - erster Aufruf im Job Grotten langsam
    - skaliert miserabel, da pro Job eine eigene JVM aufgemacht wird
    - Java Umgebung nicht zuverlässig steuerbar, da implizit gestartet
    - spätestens wenn man das mit RPG Java Calls mixt, fällt der Haufen um
    - Fehler Analyse nahezu unmöglich

    mfg

    Dieter Bender

    Zitat Zitat von LindnerSpezial Beitrag anzeigen
    Hallo!

    Ich bekomme auch folgenden Fehler:
    com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
    WARNUNG: TDSChannel ( ConnectionID:1 TransactionID:0x0000000000000000) SSL handshake failed: null

    Ich habe schon verschiedenste Treiber ausprobiert, aber keiner funktioniert.
    (1.1 , 1.2 , JTDS)

    Enweder kommt die Fehlermeldung von oben, oder "Fehler bei der Anmeldung von Benutzer".

    Eigentlich müssten doch alle Zusatzprogramme installiert sein, um eine SSL Verbindung zu dem SQL Server 2005 herzustellen:

    5722AC3 *INSTALLED Crypto Access Provider 128-bit
    5722JC1 *COMPATIBLE Toolbox for Java
    5722JV1 *COMPATIBLE Developer Kit for Java
    5722JV1 *COMPATIBLE Java Developer Kit 1.3
    5722JV1 *COMPATIBLE Java Developer Kit 1.4
    5722JV1 *INSTALLED Java Developer Kit 1.5
    2MEBEFF *INSTALLED Signature/Encryption


    Hier der Code usw.
    MC Press Online - Query Remote Database Tables from the iSeries Using SQL and Java

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

  6. #30
    Registriert seit
    Jul 2008
    Beiträge
    20
    Hallo!

    So, ich habe das soweit zum Laufen bekommen. Der lokale SQL-Server Benutzer hat für die Verbindung nicht funktioniert. Warum auch immer!
    Mit einem Domänen Benutzer der auch die Datenbankrechte hat und dem JTDS Treiber klappt jetzt der Verbindungsaufbau.

    Da das Java Programm ja im Batch aufgerufen wird, gibt es keine Möglichkeit, das Programm zu debuggen.
    Gibt es denn andere Möglichkeiten die Fehler auszugeben(System.out.println...)? Oder Log's auf der AS zu schreiben? Man könnte natürlich auch aus dem Java Programm in eine AS Datei mit einem langen String Feld schreiben. Aber geht das nicht irgend wie besser/anders?

    Gruß
    Henning

  7. #31
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    in Java verwendet man Standard mäßig log4j für sowas. Damit kann man extern konfigurieren wieviel aus welcher class wohin und wie formatiert ausgegeben wird und es gibt fertige Freeware Programme zum anzeigen und filtern der log Ausgaben. In der Applikation wird dann ein Logger erzeugt und mit unterschiedlichen Prioritten ausgegeben.
    Für Arme und Kranke gibt es auch noch System.err.println() und Co.

    D*B

    Zitat Zitat von LindnerSpezial Beitrag anzeigen
    Hallo!

    So, ich habe das soweit zum Laufen bekommen. Der lokale SQL-Server Benutzer hat für die Verbindung nicht funktioniert. Warum auch immer!
    Mit einem Domänen Benutzer der auch die Datenbankrechte hat und dem JTDS Treiber klappt jetzt der Verbindungsaufbau.

    Da das Java Programm ja im Batch aufgerufen wird, gibt es keine Möglichkeit, das Programm zu debuggen.
    Gibt es denn andere Möglichkeiten die Fehler auszugeben(System.out.println...)? Oder Log's auf der AS zu schreiben? Man könnte natürlich auch aus dem Java Programm in eine AS Datei mit einem langen String Feld schreiben. Aber geht das nicht irgend wie besser/anders?

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

  8. #32
    Registriert seit
    Jul 2008
    Beiträge
    20
    Danke für die schnelle Antwort!

    Gibt es denn irgendwo eine Anleitung, wie man Log4j auf der iSeries installiert und benutzt? Muss man dafür auch Apache installieren?
    Ist es da auch möglich bestimmte Variablen je nach Bedarf auszugeben?

    Gruß Henning

  9. #33
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    http://www.johnmunsch.com/projects/P...0Or%20Less.ppt
    oder einfach mal mit log4j und Tutorial googeln oder yahoochzen
    Ansonsten lädt man sich das jar Archiv für log4j von Apache, sorgt dafür, dass es die Applikation im classpath hat und los gehts. Ausgabe von Variablen geht da, wie das in Java immer geht, findet man aber auch Beispiele zu in allen Tutorials.

    D*B
    der dazu rät doch mal über das erarbeiten von ausreichenden Grundkenntnissen nachzudenken, sonst kann das Lehrgeld in Form von vergurkten Projekten kosten!

    Zitat Zitat von LindnerSpezial Beitrag anzeigen
    Danke für die schnelle Antwort!

    Gibt es denn irgendwo eine Anleitung, wie man Log4j auf der iSeries installiert und benutzt? Muss man dafür auch Apache installieren?
    Ist es da auch möglich bestimmte Variablen je nach Bedarf auszugeben?

    Gruß Henning
    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. #34
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Man kann ganz einfach entsprechende Ausgaben mit system.out bzw. system.err erstellen.
    Für die Ausgabe kann man beim Starten eine Ausgabeumleitung in eine PF angeben:

    java .... >/qsys.lib/mylib.lib/myfile.file/myfile.mbr 2>/qsys.lib/mylib.lib/myerr.file/myerr.mbr
    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

  11. #35
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    einfach ist nicht immer einfacher, ich würde schon zu log4j raten,
    - da kann man DodUnnDeufel extern konfigurieren
    - da kommen Timestamps, ThreadId und sowas automatisch
    - da kann man Logdateien rollieren lassen
    - da kann man Logdateien automatisch verwalten lassen
    ...

    D*B, der einen Hauch von Handke verspürt:
    "Die Angst des RPG Programmierers vor dem Framework"

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Man kann ganz einfach entsprechende Ausgaben mit system.out bzw. system.err erstellen.
    Für die Ausgabe kann man beim Starten eine Ausgabeumleitung in eine PF angeben:

    java .... >/qsys.lib/mylib.lib/myfile.file/myfile.mbr 2>/qsys.lib/mylib.lib/myerr.file/myerr.mbr
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  12. #36
    Registriert seit
    Jul 2008
    Beiträge
    20
    Ich probiere gerade das Log4j einzubauen!

    import org.apache.log4j.*;

    private static Logger logger = Logger.getLogger( ExtDBsql.class );

    SimpleLayout layout = new SimpleLayout();
    ConsoleAppender consoleAppender = new ConsoleAppender( layout );
    logger.addAppender( consoleAppender );
    FileAppender fileAppender = new FileAppender( layout, "MeineLogDatei.log", false );
    logger.addAppender( fileAppender );
    // ALL | DEBUG | INFO | WARN | ERROR | FATAL | OFF:
    logger.setLevel( Level.WARN );

    Wie gibt man denn eine Datei im IFS an, in die die Logdaten geschrieben werden?

    Es gibt zwar viel im Internet zu finden, aber meistens nur für PC's und nicht für die iSeries.

    Danke im voraus

    Gruß
    Henning

Similar Threads

  1. PDF auf iSeries
    By PeterKarsten in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 20-08-08, 12:52
  2. NFS von Linux auf ISeries
    By linguin in forum NEWSboard Linux
    Antworten: 0
    Letzter Beitrag: 03-01-07, 08:22
  3. Antworten: 3
    Letzter Beitrag: 27-08-06, 17:31
  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. Java auf der iSeries
    By binhierneu in forum NEWSboard Java
    Antworten: 7
    Letzter Beitrag: 19-10-04, 21:02

Berechtigungen

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