-
Fehler bei Stored Procedure
Hallo,
ich habe folgendes Problem...
Wir haben ein relativ kompliziertes RPGLE-Programm, das zu einem Artikel den Standardpreis und den Aktionspreis ermittelt. Darin wird unter anderem auch ein OUT auf die *LDA durchgeführt. Jetzt habe ich für dieses Programm eine Stored Procedure als Wrapper erstellt mit 3 Input-Parametern und 2 Output-Parametern (Standardpreis und Aktionspreis). Wenn ich das z.B. mit Java teste, funktioniert das auch ohne Probleme.
Jetzt habe ich um diese Stored Procedure herum auch noch eine SQL-Funktion erstellt, mit der ich jeweils nur einen der beiden Preise erhalten möchte. Beim Aufruf dieser SQL-Funktion, die im Prinzip nur die Stored Procedure aufruft, erhalte ich folgenden Fehler:
Code:
Programmstatus . . . . . . . . . . . . : 00413
Während der Verarbeitung von Datenbereich ist ein E/A-Fehler aufgetreten (C G D F).
Code:
Funktion CHGDTAARA nicht zulässig.
Das passiert genau an der Stelle, an der im RPGLE-Programm der OUT auf die *LDA durchgeführt wird.
Kann mir jemand sagen warum ich die Stored Procedure ohne Fehler aufrufen kann, aber bei der SQL-Funktion (als Wrapper) dieser Fehler auftritt?
Vielen Dank,
KM
-
Change Data Area (CHGDTAARA)
Vielleicht CPF180B oder CPF180C ?
"Changing the special data areas (*LDA, *GDA and *PDA) is allowed from the initial thread only and will fail if attempted from a secondary thread."
-
Das mit den weiteren Threads könnte die Erklärung sein. Das ist ja doof.
Stimmt, ich erhalte die CPF180C.
Danke,
KM
-
... eigentlich leiste ich ja ungern Beihilfe zum Huddel (LDA aus SQL Function benutzen: es schüttelt mich). Was hast Du denn für Parameter beim create function? Vielleicht hilft ja disallow parallel.
D*B
-
Ich weiß, mich nervt es selbst, dass es nicht einfacher gelöst werden kann. Aber es ist halt ein "historisches" Programm.
Disallow Parallel hat leider nichts gebracht.
Gruß,
KM
-
Ergänzend könnte vielleicht noch "NOT FENCED" etwas bringen.
Ansonsten musst du da wahrscheinlich ein OPM-CLP als Wrapper verwenden, der dann den CHGDTAARA durchführen könnte. OPM's werden in einer anderen ACTGRP aufgerufen und sind nicht Threadfähig.
-
Die Option "NOT FENCED" hat die Lösung gebracht. Damit funktioniert es nun und hat mir einiges an Arbeit erspart.
Vielen Dank,
KM
-
NOT FENCED ist i.Ü. die einzige Möglichkeit, die externe Prozedur mittels STRSRVJOB/STRDBG von einem anderen Job aus zu debuggen. Innerhalb des SQL-Jobs (z.B. STRSQL) klappt das einfach nicht.
Similar Threads
-
By mk in forum NEWSboard Programmierung
Antworten: 0
Letzter Beitrag: 19-05-17, 10:24
-
By mk in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 10-12-14, 15:31
-
By lorenzen in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 12-12-02, 16:46
-
By Sven Schneider in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 03-09-02, 07:31
-
By lorenzen in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 27-08-02, 14:59
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