-
Tja Dieter, bei DDMF mit *RDB kann man tatsächlich auch per DRDA sequentiell auf Dateien zugreifen.
Vergleichbar zu DDMF mit SNA.
-
... ok, dann halt präziser: das macht man so nicht! (gilt auch für den three part alias Huddel)!
-
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?
-
... 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
-
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.
-
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.
-
 Zitat von mahones
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
-
Wir haben mittels DBMON gesehen, dass der CONNECT (laut SQL Statement summary) mehr als 10s dauert. OPEN, FETCH, etc. dauern nur einige ms.
Ist das Programm, bzw. der SQL-Zugriff als solches, damit aus dem Schneider?
Welche Einstellungen muss man sich dazu anschauen?
-
... das sollte alles im unteren millisekunden Bereich liegen. 10 sec ist gröbst daneben und selbst durch Netzwerk oder Subsystem Konfiguration kaum erklärbar. Was ist denn sonst so auf der Maschine los?
-
Eigentlich nicht viel und erst recht nicht mehr als sonst.
Die Maschine ist (so sagten andere externe Partner) auch ausreichend groß dimensioniert.
(QMODEL > 42A, PRCFEAT > EP1F)
Beide Systeme befinden sich auf einer physischen Maschine, aber auf 2 LPAR
Die 128GB RAM sind auf 96 / 32 aufgeteilt...
-
... bleibt das bei mehreren connects nacheinander aus demselben Job genauso langsam? bei verschiedenen Jobs?
-
Ja, wenn ich das Programm mehrmals hintereinander aufrufe (selbe Sitzung = selber Job), dauert jeder Aufruf so lange!
Wenn ich es parallel auf mehreren Sitzungen aufrufe, dauert jeder einzelne Aufruf auch so lange...
Similar Threads
-
By Hubert in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 14-10-19, 14:02
-
By User_ in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 25-05-18, 11:51
-
By Bodo Roggenkamp in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 14-10-02, 08:44
-
By hs in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 22-08-02, 08:27
-
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
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks