Anmelden

View Full Version : Datenselektion von Windows-DB2-Server



wolfinho
21-05-08, 15:07
Hallo zusammen,

innerhalb eines Projektes müssen wir von der i5 aus Daten von einem Windows-DB2-Server selektieren und auf der i5 in einer DB2-Tabelle speichern.

Über Query-Manager scheint dies von i5 zu i5 zu funktionieren:

Parameter:
* RDB: Name der Relationales DB in WRKRDBDIRE
* RDBCNNMTH: *DUW (halten von 2 Verbindungen)


Leider hat mein Versuch von i5 zu Windows-DB2-Server nicht funktioniert.

Bei meinem Versuch habe ich im Joblog folgende Meldungen bekommen:

Datenbank-TCP/IP- oder lokale Socket-Verbindung beendet.
Zeiger für angegebene Position nicht gesetzt.
SQL-Systemfehler. SQL-Systemfehler.
SQL-Systemfehler.
SQL-Systemfehler.
Funktionsprüfung. SQL0901 nicht überwacht durch QSQXCUTE bei Anweisung
0000021118, Instruktion X'0000'.
SQL-Systemfehler.
SQL-Systemfehler.
Datei QAP0ZDMP in Bibliothek QTEMP bereits vorhanden.
Auszug der BenutzerTrace-Daten für Job 526711/YC03XF5/QPADEV004N in
Teildatei QP0Z526711 in Datei QAP0ZDMP in Bibliothek QTEMP gestellt.
27 Sätze aus Teildatei QP0Z526711 kopiert.
1 Benutzer-Trace-Puffer gelöscht.
Befehl START für Objekt mit SQLCODE -901 fehlgeschlagen.
Befehl START aufgrund eines Fehlers beendet.
Befehl STRQMQRY fehlgeschlagen.

Die Ausgabe der Datei QAP0ZDMP in QTEMP sieht wie folgt aus:

Speicherauszug für Benutzertrace für Job 526711/YC03XF5/QPADEV004N. Größe: 300 K, Anzahl Umläufe: 0

--- 05/21/2008 16:05:32 ---
00000104:394696 SQ Run Time Dump of SQLCA section:
00000104:394752 E7902A2447:001140 L:0008 EyeCatch:
00000104:394792 E7902A2447:001140 E2D8D3C3 C1404040 *SQLCA ........*
00000104:394832 E7902A2447:001148 L:0004 Length of SQLCA:
00000104:394864 E7902A2447:001140 00000088 *...........h....*
00000104:394896 E7902A2447:00114C L:0004 SQL return code:
00000104:394928 E7902A2447:001140 00000000 *................*
00000104:394960 E7902A2447:001150 L:0048 SQL error message:
00000104:395000 E7902A2447:001150 001CC4E6 C8C6C1C7 40404040 40404040 *..DWHFAG *
00000104:395048 E7902A2447:001160 40404040 E2D8D3F0 F9F0F1F2 00030000 * SQL09012....*
00000104:395096 E7902A2447:001170 00000000 00000000 00000000 00000000 *................*
00000104:395144 E7902A2447:001180 00000000 00000000 00000000 00000000 *................*
00000104:395192 E7902A2447:001190 00000000 00000000 *................*
00000104:395232 E7902A2447:001198 L:0008 Program name:
00000104:395264 E7902A2447:001190 E2D8D3F0 F9F0F1F2 *........SQL09012*
00000104:395296 E7902A2447:0011A0 L:0018 Diag information: 00000104:395344 E7902A2447:0011A0 00000000 00000000 00000000 00000003 *................*
00000104:395384 E7902A2447:0011B0 00000001 F7F9F8F2 *....7982........*
00000104:395424 E7902A2447:0011B8 L:000B Warning flag:
00000104:395456 E7902A2447:0011B0 40404040 40404040 *........ *
00000104:395496 E7902A2447:0011C0 404040 * .............*
00000104:395536 E7902A2447:0011C3 L:0005 SQL state:
00000104:395568 E7902A2447:0011C0 F0 F0F0F0F0 *...00000........*


Kennt jemand das Problem oder hat jemand vielleicht eine andere Lösung für die Selektion und Speicherung von Daten einer DB eines Windows-DB2-Server ?

Randbedingung: Es sollte sich um einer Variante handeln, die auch im Batch läuft.

Vielen Dank für Eure Unterstützung.

Was ich absolut nicht verstehe ist, daß ich innerhalb strsql mich mit connect auf den Windows-DB2-Server verbinden kann und mir die Daten der Tabelle des Windows-DB2-Server dann über select anzeigen lassen kann. Dann müsste es doch eigentlich auch möglich sein, sich diese Daten auf der i5 zu speichern, oder ?

BenderD
21-05-08, 15:36
Hallo,

- wenn ihr interaktiv connecten könnt, dann scheint auf der Windows Büchse DB2 connect installiert zu sein
- dann müsste das ganze mit embedded SQL eigentlich funzen
- QM hat hier möglicherweise nur eingeschränkte Unterstützung, oder das ist ein Bug, oder ein Bugfeature
- was immer ohne jedes Vertun geht ist Java und für eine reine Batch Geschichte reicht da meist meine kleine Freeware von meiner Open Source Seite

mfg

Dieter Bender

Fuerchau
23-05-08, 09:22
Ich vermute mal, dass es CommitControl-Probleme gibt.

Bei einer i5 kann man Daten ohne Commit-Level verarbeiten, da Daten nicht zwingend journalisiert werden müssen.

Bei anderen DB2's gibt es die Unterscheidung nicht. Hier muss IMMER mit einer Commit-Methode (z.B. *CHG) gearbeitet werden.

Des weiteren kann es Probleme mit SQLPKG's geben.
Embedded SQL's müssen meistens auf der Gegenseite ein SQLPKG erstellen "CRTSQLPKG ... RDB(...)", wie immer dies dort dann ausgeführt wird.

Ich würde hier auch eher den umgekehrten Weg gehen und eben über DB2/Connect von der Windows-DB" die Daten zur AS/400 schieben.
Dies geht meist mit weniger Aufwand.