[NEWSboard IBMi Forum]
Seite 1 von 3 1 2 ... Letzte
  1. #1
    Registriert seit
    Dec 2005
    Beiträge
    131

    SQLCODE -805 beim Zugriff auf ein fernes System

    Hallo zusammen,

    bei der Modernisierung eines Programmes möchte ich vom SETLL / READE (mittels einer DDMF auf eine andere IBMi) auf SQL umstellen.
    Im ersten Schritt, so habe ich gelesen, ist dazu ein RDB-Verzeichniseintrag notwendig.
    Diesen haben wir erstellt und anschließend bei einer neu erstellten DDMF als fernen Standort *RDB angegeben - und den Namen der relationalen Datenbank (so wie er auf dem fernen System unter *LOCAL eingetragen ist).

    Ein interaktives SQL in einer 5250-Sitzung war ebenso erfolgreich wie ein SQL-Script im integrierten Editor beim iACS.

    In meinem RPG-Programm klappt das aber leider NICHT.
    Hier erhalte ich beim OPEN des cursors einen SQLCODE -805.

    Ebenso hat eine andere Adressierung der fernen Datei nicht funktioniert:
    RMTSYS.RMTLIB.RMTFILE

    In meinen spool files habe ich dann auch einen Eintrag:

    Code:
    MSG ID  WTK  SATZ  TEXT                                                    
    SQL0204  30          *LIBNAME* der Art *LIB in QSYS nicht gefunden.            
    SQL5056              SQL-Paketerstellung für Modul PGMNAME fehlgeschlagen.
                         Paketname sollte *PGNMANE* in *LIBNAME* in *RMTSYS* sein.
    Nun habe ich bereits andere Hilfestellungen dazu gefunden, konnte aber nichts damit anfangen...die Begriffe sagen mir nichts :-(
    So steht auf der IBM-Seite z.B. beim SQLCODE -805:
    "SQL package &1 in &2 not found at DRDA Server."
    -> Was ist ein / der DRDA Server? (Lese ich auf den dazugehörigen Seiten der IBM weiter, bin ich noch verwirrter...)

    Auf einer anderen Seite finde ich auch einen Artikel zu "How to analyze SQLCODE -805 (german text)" verstehe aber auch dort kaum ein Wort.

    Nun hoffe ich auf wohlgesonnene Experten, die das etwas anschaulich erklären können, wie ich hier ans Ziel gelangen kann.

    Ich hoffe, ich habe so ziemlich alle benötigten Infos mitgeteilt - ansonsten ergänze ich die natürlich gerne.

    Danke schonmal!

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... falls Du noch kein CRTSQLPKG gemacht hast, dann mal los!

    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/

  3. #3
    Registriert seit
    Dec 2005
    Beiträge
    131
    Danke für die erste, schnelle Rückmeldung!

    Ja, das habe ich schon einmal versucht, aber auch bei der manuellen Ausführung kommen die gleichen Fehlermeldungen. Vielleicht sind da schon Parameter, die ich falsch setze...aber welche?
    Die, die ich angebe, klingen schon plausibel und sind zumindest gültig.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.206
    Das Problem bei RPG ist, dass du auf dem Zielsystem per SQL ein SQLPKG-Objekt erstellen musst.
    Dies erfolgt mittels CRTSQLPKG mit der Angabe des Zielsystems und deines RPG-Programmes.
    Allerdings wird das Paket auf dem Zielsystem dann mit *PUBLIC *EXCLUDE erstellt.

    Ein SQLPKG enthält ebenso eine Signatur. D.h., sobald du dein Programm änderst und SQL-Befehle hinzufügst/entfernst/änderst muss das SQLPKG neu erstellt werden.

    DDMF's sind aber quasi sowieso der falsche Weg, da du dann für jeden Zugriff eine DDMF benötigst.
    Du kannst aber aus dem Programm via Connect zu dem Zielsystem Verbindung aufnehmen um dann per SQL direkt mit dem Ziel zu arbeiten.
    Mittels "exec sql set connection ..." kannst du zwischen Lokal und Remote fliegend wechseln.
    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
    Mar 2002
    Beiträge
    5.286
    ... ich habe gerade keinen Bock auf Ratespiele. Was machst Du genau in deinem Programm? Remote SQL Zugriffe gehen nicht über DDM Files, sondern über einen connect.

    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/

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.206
    Tja Dieter, bei DDMF mit *RDB kann man tatsächlich auch per DRDA sequentiell auf Dateien zugreifen.
    Vergleichbar zu DDMF mit SNA.
    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
    Mar 2002
    Beiträge
    5.286
    ... ok, dann halt präziser: das macht man so nicht! (gilt auch für den three part alias Huddel)!
    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. #8
    Registriert seit
    Dec 2005
    Beiträge
    131
    Danke für die Informationen und Hilfestellungen!
    Ich versuche mal, das zu sortieren:
    1. Ich habe im Programm nun folgendes eingebaut:
    Exec SQL Connect to :LOCNAME USER :AUTHID USING :PASSWORD;
    ...wobei die Variablen entsprechend definiert und gefüllt sind.
    Im Joblog sehe ich nun auch die Meldung "CONNECT für relationale Datenbank >DBNAME< abgeschlossen. Aktuelle Verbindung besteht zur relationalen Datenbank >DBNAME<."
    => Damit bin ich also vom SQL per DDMF weg...Schelte von D*B verstanden :-)

    2. Nach der Deklaration des Cursors, also beim OPEN, bekomme ich trotzdem wieder einen -805.
    => Muss ich trotzdem "...auf dem Zielsystem per SQL ein SQLPKG-Objekt erstellen..."?
    Auf dem Zielsystem ist das Programm ja gar nicht vorhanden, somit kann ich es dort nicht angeben. (es kommt ja sonst der Fehler "SQL0204 >PGMNAME< der Art *PGM in >LIBNAME< nicht gefunden."
    Das Programm versucht ja auch irgendwie, dieses zu machen, es klappt aber auch nicht.

    Evtl. ist das ja ne banale Frage, aber da ich damit bisher noch nie gearbeitet habe, fehlt mir da einfach die Basis, wie man es beginnt...wie funktioniert das also mit dem CRTSQLPKG?

  9. #9
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... so der connect ist erst mal da und funzt. Beim lokalen connect wird das implizit ausgeführt, ohne dass man was programmiert.
    Static sql (das ist das, was embedded SQL macht) braucht ein package. Für den lokalen Zugriff wird das an das Programm automatisch angehängt (kann man sich mit PRTSQLINF ansehen). In dem Package ist der Code für den Datenbankzugriff. Für den remote Zugriff muss das Package auf dem Zielsystem angelegt werden. Das Programm ist also "aufgeteilt" in lokal und der Datenbankcode remote.
    Zu empfehlen ist hier, das Porgramm wie gehabt zu erstellen und das Package mit CRTSQLPKG zu erzeugen, hierbei gibt man im Parameter RDB die Maschine an, auf die man zugreifen will, dort wird dann das Package erzeugt.

    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/

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.206
    Das hatte ich doch oben mit dem Hinweis CRTSQLPKG ja schon beschrieben;-).
    Auf dem lokalen System:
    CRTSQLPKG PGM(MYPROG) RDB(MYRDB)
    Auf dem Remotesystem ggf. für das erstellte SQLPKG noch einen EDTOBJAUT durchführen, falls andere User dein Programm auch verwenden wollen oder sollen.
    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. #11
    Registriert seit
    Dec 2005
    Beiträge
    131
    Danke, der PRTSQLINF hat mich auf die richtige Spur gebracht...
    Ich habe beim CRTSQLRPGI die Parameter aber schon angepasst, denn ein nachträgliches CRTSQLPKG wollte mir nicht gelingen. Außerdem sind die Berechtigungen für den angegebenen User auch mit *ALL korrekt, denke ich.
    Aber nach ein paar Anpassungen im Programm (z.B. RELEASE der RDB) klappt das mickrige SELECT nun zumindest. Jetzt schauen wir nach dem Verbindungsaufbau, denn der dauert noch seeehr lange.

  12. #12
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von mahones Beitrag anzeigen
    Danke, der PRTSQLINF hat mich auf die richtige Spur gebracht...
    Ich habe beim CRTSQLRPGI die Parameter aber schon angepasst, denn ein nachträgliches CRTSQLPKG wollte mir nicht gelingen. Außerdem sind die Berechtigungen für den angegebenen User auch mit *ALL korrekt, denke ich.
    Aber nach ein paar Anpassungen im Programm (z.B. RELEASE der RDB) klappt das mickrige SELECT nun zumindest. Jetzt schauen wir nach dem Verbindungsaufbau, denn der dauert noch seeehr lange.
    Bist Du sicher, dass das der Verbindungsaufbau ist? Fehlende Indexe werden beim verteilten Zugriff natürlich doppelt bestraft. Da würde ich mal ein PRTSQLINF auf das Package machen. Den Job unter debug laufen lassen und mal sehen, was es da so vor hat.

    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. SQLCODE = -206
    By Hubert in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 14-10-19, 14:02
  2. Antworten: 7
    Letzter Beitrag: 25-05-18, 11:51
  3. zuätzlicher Job beim eingeschränkten System
    By Bodo Roggenkamp in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 14-10-02, 08:44
  4. Antworten: 2
    Letzter Beitrag: 22-08-02, 08:27
  5. Zugriff auf Integrated File System der AS/400
    By Koelch400 in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 14-12-01, 14:28

Berechtigungen

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