DB2 function mit SQLCODE -471 reason 00E79002
- Dieses Thema hat 4 Antworten und 1 Teilnehmer, und wurde zuletzt aktualisiert vor 16 Jahre, 7 Monaten von
Anonym.
-
AuthorPosts
-
1. März 2007 um 7:06 Uhr #2763
AnonymInaktivHallo zusammen,
ich möchte gerne mal wieder eure Erfahrung in Anspruch nehmen.
Wir haben eine DB2-Function (external scalar) die mit Hilfe eines COBOL-PGMs eine Bank-Kalender-Information im DB2 zur Verfügung stellt.Die Funktion wird mindestens 48 mal am Tag in ausgeführten SQLs genutzt. (alle 30 Minuten).
Es kommt fast täglich 1-2 mal vor, das diese SQLs mit folgender Fehlermeldung abbrechen.
DSNT408I SQLCODE = -471, ERROR: INVOCATION OF FUNCTION OR PROCEDURE
DB.DE238FUN FAILED DUE TO REASON 00E79002
DSNT418I SQLSTATE = 00000 SQLSTATE RETURN CODE
DSNT415I SQLERRP = DSNX9WCA SQL PROCEDURE DETECTING ERROR
DSNT416I SQLERRD = 0 0 0 -1 0 0 SQL DIAGNOSTIC INFORMATION
DSNT416I SQLERRD = X’00000000′ X’00000000′ X’00000000′
X’FFFFFFFF‘ X’00000000′ X’00000000′ SQL DIAGNOSTIC
INFORMATIONAlle Überprüfungen meinerseits führten zu keinem Ergebnis.
-Function ist nicht gestoppedAuch die Analysen unserer DBAs konnten keine Auffälligkeiten finden.
Die Parametresierung der TCBs, dispatching priority seien ok.Auch mir ist schon manchmal ein -471 im SPUFI passiert, wenn ich diese DB2-Function nach mindestens 15 minütiger Pasue verwendet habe. Wenn die Nutzung einmal funktioniert hat, klappt es bei Folgeaufrufen immer. Daher verstärkt sich auch bei mir der Verdacht, dass das Problem beim ersten Start der Function liegt, wenn DB2 die function nicht schnell genug laden kann.
Was können wir noch prüfen?
Gibt es irgendwelche Ratschläge?Gruss Klaus
P.S. Ich war mir unsicher, ob diese Anfrage bei SQL oder Programmierung besser aufgehoben ist.
1. März 2007 um 8:07 Uhr #3154
AnonymInaktivHi Klaus,
das Manual sagt dazu:
Explanation:
DB2 received an SQL CALL statement for a stored procedure or an SQL statement containing an invocation of a user-defined function. The statement was not accepted because the procedure could not be scheduled before the installation-defined time limit expired. This can happen for any of the following reasons:The DB2 STOP PROCEDURE(name) or STOP FUNCTION SPECIFIC command was in effect. When this command is in effect, a user-written routine cannot be scheduled until a DB2 START PROCEDURE or START FUNCTION SPECIFIC command is issued.
The user-written routine could not be assigned to a TCB in the DB2-established stored procedures address space in the required time interval, because all available stored procedure TCBs were in use.
The DB2-established stored procedures address space dispatching priority is low, resulting in delays when processing stored procedure requests. If the delays become excessive, the TCBs in the stored procedure address space do not become available to process new SQL CALL statements in a timely manner.
The dispatching priority assigned by WLM to the caller of the user-written routine was low, which resulted in WLM not assigning the request to a TCB in a WLM-established stored procedure address space before the installation-defined time limit expired.
The WLM application environment is quiesced so WLM will not assign the request to a WLM-established stored procedure address space.
WLM is being used in compatibility mode, and the needed stored procedure address space has not been started using the MVS START command.Da gibt es einige Möglichkeiten, die für das Auftreten des Fehlers beim ersten Aufruf ursächlich sein können. Was ist denn mit den verfügbaren TCBs? Alle belegt beim Erstaufruf?
MfG
AxelP
1. März 2007 um 9:25 Uhr #3418
AnonymInaktivHi Axel,
danke für deine schnelle Antwort.
Die von Dir aufgeführte Fehlermeldung hatte ich auch schon angeschaut.Mir fehlt es aber an dem "knowhow" um diese Situation zu analysieren.
Leider ist es ja immer so:
-SQLCODE -471 tritt auf
-einige Zeit später wird der Fehler bemerkt (typischerweise 30 Minuten bis mehrere Stunden)Wie kann ich aber jetzt feststellen:
Welches waren die verfügbaren TCBs?
Wie war die Belegung dieser zum Zeitpunkt des SQLCODES?Steht das im DB2-Master?
Welcher JOB-Output enthält hierfür relevante Infos?
Gibt es tools, die zur Analyse genutzt werden können? (zum Beispiel haben wir OMEGAMON für DB2)
Gibt es -display commands, die hier weiterhelfen?Könnt ihr mir da etwas Nachhilfe geben?
Gruss Klaus
5. März 2007 um 14:52 Uhr #3584
AnonymInaktivHi Klaus,
ich dachte, ich hätte am Samstag noch eine Anmerkung eingegeben! (An den Webmaster: ist da etwas verloren gegangen?)
Hier nochmals meine Bemerkung: Im Master wird wohl nicht mehr stehen als die bekannten Fehlermeldungen. Ich vermute stark, daß das Problem in Zusammenarbeit von DBAs und Systemern gelöst werden muß, weil alles auf Dispatching- oder sonstige Parameter-Probleme in der DB2-/WLM-Ecke hinweist, also kein reines DB2-Problem in engeren Sinne sein dürfte.
Übrigens: Welche DB2-Version ist denn im Einsatz? (Für Version 5.1 gab es für diesen Fehlercode einen APAR 😉 )
MfG
AxelP
5. März 2007 um 16:06 Uhr #3705
AnonymInaktivHi Axel,
danke für die INFO.
Ich bin zwar nicht im DBA-Bereich tätig, aber versuche trotzdem gerne zu verstehen, wo das Problem genau liegt. Oft kann man ja auch einen guten Hinweis an die DBAs geben, um zur Problemlösung beizutragen.Daher ist jede Information, die hilft das Problem näher einzugrenzen willkommen.
Wir haben übrigens Version 8 im compat-mode im Einsatz.
Gruß Klaus
-
AuthorPosts
You must be logged in to reply to this topic.