Anmelden

View Full Version : MSQuery hängt sich auf beim Zugriff auf AS400



Seiten : 1 [2]

Fuerchau
15-09-09, 17:29
Soweit sieht eigentlich alles normal aus.
Allerdings ist meine Vermutung des temporären Index nicht ganz falsch.

Die nachricht "Empfohlener Zugriffspfad für Datei QADBXREF." sollte man mal mit F1 im Detail ansehen.
Es sieht mir ganz danach aus, dass Query nicht steht, sondern die AS/400 ganz einfach für die Schemaabfrage so lange benötigt.

Das kann auch an einem fehlerhaften SQLPKG QGPL/QZDAPKG liegen.

Bereinigung:
ENDHOSTSVR *DATABASE
DLTSQLPKG QGPL/QZDAPKG
STRHOSTSVR *DATABASE

Das SQLPKG wird automatisch neu erstellt.

mors
15-09-09, 18:04
Ok, hab das mal probiert:

Beim Ausführen des dlt-Befehls kommt die Meldung "Objekt QZDAPKG [...] kann nicht zugeordnet werden".
Laut F1-Hilfe sind noch Sperren auf diesem Objekt.
Kann ich die betreffenden Jobs einfach beenden?

PS: Die Jobs, die die Sperren halten sind "QZDAINIT" und etliche "QZDASOINIT"-Jobs des Benutzers QUSER

Fuerchau
16-09-09, 08:24
Ich hab noch mal gesucht, hier die vollständige Vorgehensweise:

ENDHOSTSVR *DATABASE
ENDPJ QUSRWRK QZDASOINIT *IMMED
ENDPJ QUSRWRK QZDASSINIT *IMMED
ENDPJ QSERVER QZDAINIT *IMMED
DLTSQLPKG QGPL/QZDAPKG
STRHOSTSVR *DATABASE
STRPJ QSERVER QZDAINIT

ozean
28-09-09, 12:24
Hallo allerseits,

tut mir Leid, dass es so lange mit der Antwort gedauert hat. Das lag am Termin mit dem Techniker, welcher erst heute bei uns war. Also wir haben SQLPKG neuerstellt, wie Fuerchau es beschrieben hat. Hat allerdings nichts gebarcht. Wir werden heute nacht die Maschine neustarten, mal sehen, ob es was bringt. In dem Log steht auch nichts außergewöhnliches drin, welcher generiert wird, wenn über Excel bzw. Query neue Abfrage erstellt und das Fenster mit den ganzen Spalten angezeigt wird.
-----------------------------------
Job 183455/QUSER/QZDASOINIT im Subsystem QUSRWRK in QSYS am 28.09.09
10:55:39 gestartet. Job im System am 28.09.09 um 10:55:39. angekomm
Benutzer COMWARE an Client 192.168.xxx.94 ist mit dem Server verbunden
PREPARE für Anweisung QZ917A0090BD92D000 beendet.
Anweisung CALL beendet.
Abfrageauswahl aus Datei QAQQINI in Bibliothek COMWARE abgerufen.
Abfrageauswahl aus Datei QAQQINI in Bibliothek COMWARE abgerufen.
Abfrageauswahl aus Datei QAQQINI in Bibliothek COMWARE abgerufen.
Abfrageauswahl aus Datei QAQQINI in Bibliothek COMWARE abgerufen.
Abfrageauswahl aus Datei QAQQINI in Bibliothek COMWARE abgerufen.
DESCRIBE für vorbereitete Anweisung STMT0002 beendet.
PREPARE für Anweisung STMT0002 beendet.
Abfrageauswahl aus Datei QAQQINI in Bibliothek COMWARE abgerufen.
****: Debug-Nachrichten des Optimierungsprogramms für Abfrage werden
gestartet.
Alle Zugriffspfade wurden für Datei LOCATIONS berücksichtigt.
Zugriff nach Eingangsfolge für Datei LOCATIONS verwendet.
Abfrageauswahl aus Datei QAQQINI in Bibliothek COMWARE abgerufen.
Temporäre Ergebnisdatei für Abfrage erstellt.
****: Debug-Nachrichten für Abfrage werden beendet.
ODP erstellt.
Blockung für Abfrage.
Cursor SQL_CUR011D38D8 eröffnet.
1 Zeilen von Cursor SQL_CUR011D38D8 abgerufen.
Offener Datenpfad (ODP) gelöscht.
Cursor SQL_CUR011D38D8 wurde geschlossen.
STATEMENT TEXT FOUND : SELECT TABLE_NAME, TABLE_TYPE, COLUMN_COUNT,
TABLE_TEXT, LONG_COMMENT, TABLE_SCHEMA, SYSTEM_TABLE_NAME,
FILE_TYPE FROM QSYS2/SYSTABLES WHERE (((TABLE_TYPE = 'T' OR TABLE_TYPE
= 'P') AND TABLE_NAME NOT LIKE 'QIDCT%' AND
TABLE_NAME NOT LIKE 'QADB') OR ((TABLE_TYPE = 'L' AND
TABLE_NAME NOT LIKE 'QIDCT%') OR (TABLE_TYPE = 'V' AND TABLE_NAME
NOT LIKE 'SYS%')) OR (TABLE_TYPE = 'A')) AND TABLE_SCHEMA IN
(?) ORDER BY TABLE_TYPE, TA
STATEMENT NAME FOUND : FIFAABTALL0001.
STATEMENT NAME FOUND : FIFAABTALL0001.
Abfrageauswahl aus Datei QAQQINI in Bibliothek COMWARE abgerufen.
****: Debug-Nachrichten des Optimierungsprogramms für Abfrage werden
gestartet.
Abfrageauswahl aus Datei QAQQINI in Bibliothek COMWARE abgerufen
Alle Zugriffspfade wurden für Datei QADBXREF berücksichtigt.
Alle Zugriffspfade wurden für Datei QADBXMQT berücksichtigt.
Datei QADBXREF in Verknüpfungsposition 1 verarbeitet.
Datei QADBXMQT in Verknüpfungsposition 2 verarbeitet.
Empfohlener Zugriffspfad für Datei QADBXREF.
****: Debug-Nachrichten für Abfrage werden beendet.
ODP erstellt.
Blockung für Abfrage.
Cursor FILE eröffnet.
Offener Datenpfad (ODP) gelöscht.
Cursor FILE wurde geschlossen.
STATEMENT TEXT FOUND : SELECT COLUMN_NAME, TABLE_NAME, DATA_TYPE, LENGTH,
NUMERIC_SCALE, IS_NULLABLE, LONG_COMMENT, NUMERIC_PRECISION,
TABLE_SCHEMA, NUMERIC_PRECISION_RADIX, COLUMN_TEXT, CCSID,
SYSTEM_TABLE_NAME, SYSTEM_COLUMN_NAME, ORDINAL_POSITION FROM
QSYS2/SYSCOLUMNS WHERE TABLE_NAME = ? AND SYSTEM_TABLE_SCHEMA = ?
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION.
STATEMENT NAME FOUND : FDLCDALCLL0001.
STATEMENT NAME FOUND : FDLCDALCLL0001.
Abfrageauswahl aus Datei QAQQINI in Bibliothek COMWARE abgerufen.
****: Debug-Nachrichten des Optimierungsprogramms für Abfrage werden
gestartet.
Abfrageauswahl aus Datei QAQQINI in Bibliothek COMWARE abgerufen.
-------------------------------------

noch irgendeine Idee?

Fuerchau
28-09-09, 13:34
Dann muss man ggf. an dieser Stelle den CALLSTACK prüfen, in welcher Funktion der Job verschwindet, ob beim Job z.B. mit WRKACTJOB die Funktion "IDX-xxxx" angezeigt wird.

ozean
26-10-09, 10:03
Also, da bin ich wieder.
Neustart hat nichts gebracht. Das hat auch zwei Wochen gedauert. Dazu kommt noch, dass keiner von unseren AS400 Spezialisten mit dem Begriff CALLSTACK was anfangen können.
Fuerchau, könntest du vielleicht genau beschreiben, was man eingeben muss (Befehle) und wo man nachschauen kann.
Tut mir leid für solche Fragen, aber ich kenne mich mit AS400 nicht aus und fülle mich jetzt irgendwie alleingelassen. Das Problem sitzt mir aber immer noch im Nacken.
Danke!

BenderD
26-10-09, 10:37
... das sieht mir alles nach einem verbogenen Repository aus, ich würde da 2 Dinge empfehlen:
- RCLSTG *DBXREF zum Neuaufbau des Databaswe Repositories
- Software defect an IBM melden unter Beifügung eines der obigen Joblogs

D*B


Also, da bin ich wieder.
Neustart hat nichts gebracht. Das hat auch zwei Wochen gedauert. Dazu kommt noch, dass keiner von unseren AS400 Spezialisten mit dem Begriff CALLSTACK was anfangen können.
Fuerchau, könntest du vielleicht genau beschreiben, was man eingeben muss (Befehle) und wo man nachschauen kann.
Tut mir leid für solche Fragen, aber ich kenne mich mit AS400 nicht aus und fülle mich jetzt irgendwie alleingelassen. Das Problem sitzt mir aber immer noch im Nacken.
Danke!

ozean
12-11-09, 09:35
Da bin ich wieder!

Ihr werdet es nicht glauben, aber es funktioniert wieder! Und keiner weiß warum. Auf einmal ging es wieder.
Nach dem Neustart wurden auch etliche PTF's (Updates) installiert. Direkt danach funktionierte es noch nicht, wie ich meinem letzten Post geschrieben habe. Kann es vielleicht sein, dass irgendwelche Optionen erst aktiviert wurden, nachem direkt auf AS400 SQL Abfragen gemacht wurden?
Ich kenne mich da nicht aus, vielleicht könnt ihr mich aufklären.
Wie es immer auch sei, bin ich echt froh, dass es wieder geht, obwohl wir den Grund für das Problem immer noch nicht kennen.

Fuerchau
12-11-09, 10:08
Die Kombination PTF's, RCLSTG *DBXREF und ggf. Neuerstellung des SQLPKG's QZDA* hat wahrscheinlich geholfen.