[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2011
    Beiträge
    22

    Aufruf von Java aus SQL

    Hallo,
    cih muß eine Java-programm eingebettet in eine CL-Routine aus einer SQL-procedure aufrufen (Call ...). Das funktioniert soweit auch ganz gut. Jedoch komme ich an die protokollnachrichten des Javaprogramms nich mehr ran . Die entsprechende SPOLL-File ist einfach verschwunden.

    Kann mir da jemand einen Tip geben ?
    Idealerweise würde ich natürlich die relevanten Meldungen des Java-Programms an den Messagebereich der SQL-Anweisung übergeben. Wenn mir dazu jemand ein Beispiel schicken kann wäre das für mich sehr hilfreich.

    Mit freundlichen Grüßen

    Ralf

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Diese Methode ist etwas kompliziert. Besser wäre es, die SQL-Prozedur direkt als Java-Prozedur zu deklarieren.

    Um die Ausgaben von Java zu erhalten musst du eine Ausgabeumleitung ins IFS machen:

    java .... >OUT.TXT 2>ERR.TXT

    Diese Ausgaben kannst du dir dann in eine PF kopieren (CPYFRMSTMF), auslesen und die benötigten Informationen in den SQL-Nachrichtenbereich stellen.
    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
    Mar 2002
    Beiträge
    5.287
    ... wofür soll denn dieser Wackelhaufen gut sein???

    D*B

    Zitat Zitat von Ralf_2011 Beitrag anzeigen
    Hallo,
    cih muß eine Java-programm eingebettet in eine CL-Routine aus einer SQL-procedure aufrufen (Call ...). Das funktioniert soweit auch ganz gut. Jedoch komme ich an die protokollnachrichten des Javaprogramms nich mehr ran . Die entsprechende SPOLL-File ist einfach verschwunden.

    Kann mir da jemand einen Tip geben ?
    Idealerweise würde ich natürlich die relevanten Meldungen des Java-Programms an den Messagebereich der SQL-Anweisung übergeben. Wenn mir dazu jemand ein Beispiel schicken kann wäre das für mich sehr hilfreich.

    Mit freundlichen Grüßen

    Ralf
    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
    Feb 2001
    Beiträge
    20.241
    Lass ihn doch einfach.
    Manchmal ist es einfach nur gut zu wissen dass und wie es geht .
    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

  5. #5
    Registriert seit
    Jan 2011
    Beiträge
    22
    Hallo Fuerchau,
    vielen dank für die Info. Das Umlenken der Ausgabe könnte ich vermeiden indem ich das Protokoll gleich in eine PF ausgebe - Aber wie kann ich die PF in den SQL-Nachrichtendatei übergeben ?
    Ich will erreichen, daß der SQL-Nutzer evtl. Probleme bei der Ausführung des java-Programms sieht und nicht nur die meldung "Fehler im externen programm ...." bekommt.

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Dazu muss die Prozedur mit der Aufrufkonvention SQL definiert werden.
    Dann bekommst du einen Parmeter "DiagnoseMessage" in den du max. 70 Stellen packen kannst.

    Alternativ kannst du auch im CLP einen SNDPGMMSG absetzen, z.B.:

    SNDPGMMSG MSGID(CPF9898)
    MSGF(QCPFMSG)
    MSGDTA('My Msg data')
    TOPGMQ(*PRV (* *NONE *NONE))
    MSGTYPE(*ESCAPE)


    Natürlich musst du die Ausgabedatei/en auch einlesen .

    Beachte aber, dass dir bei Parallelaufruf dieser Prozedur die Ausgabedateien ggf. von verschiedenen Jobs überschrieben werden.
    Da Java allerdings in einem eigenen Job ausgeführt wird kannst du QTEMP leider nicht verwenden.

    Ich mache die Umleitung daher immer ins IFS mit einem Namen "OutNNNNNN.txt" wobei NNNNNN = Job-Nr. ist.
    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 2011
    Beiträge
    22

    Thumbs up

    ... vielen Dank - genau das ist es .

    Die java-Prozedur funktioniert jetzt problemlos und gibt ihre fehler ordnungsgemäß in den SQL-Nachrichtenbereich zurück.



    Mit freundlichen Grüßen

    Ralf

Similar Threads

  1. SQL-Fehler -514 beim Aufruf eines variablen SQL über Stored Procedure
    By HDPSTANEKE in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 21-06-07, 14:33
  2. Aufruf von Java Methode aus RPG
    By codierknecht in forum NEWSboard Java
    Antworten: 7
    Letzter Beitrag: 23-03-05, 08:31
  3. Aufruf Java Pgm mit Entry Parameter
    By mk in forum NEWSboard Java
    Antworten: 15
    Letzter Beitrag: 21-02-05, 06:54
  4. Aufruf von Java Programm direkt aus RPG
    By mk in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 09-09-04, 08:22
  5. ILE-RPG mit Java erster Aufruf dauert sehr lange
    By WPF in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 09-07-04, 09:30

Berechtigungen

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