-
Hallo!
Das Serviceprogramm ist zwar mit *CALLER gewandelt und läuft in der DFTACTPRP, aber darin ist alles in SQL gelöst, also keine READS/WRITES, und es gibt kein RCLRSC. Die SQLs laufen zwar unter COMMIT, aber das sollte eigentlich kein Problem sein.
Kann es sein weil ich die UDF mit *InLR=*ON und dann RETURN verlasse?
Wer andren eine Bratwurst brät, hat ein Bratwurstbratgerät!
-
Also das min *INLR wars nicht ...
Wer andren eine Bratwurst brät, hat ein Bratwurstbratgerät!
-
Ich habs!
Danke Birgitta, das mit der Aktivierungsgruppe war schuld!
Ist es klug das UDF-RPG jetzt mit ACTGRP(*NEW) zu wandeln, oder mit ACTGRP(PGMNAME) ??
Wer andren eine Bratwurst brät, hat ein Bratwurstbratgerät!
-
UDF's MÜSSEN mit *CALLER laufen und dürfen selber keine Commit's enthalten !
-
Hm, Commits sind nur im Serviceprogramm das von der UDF benutzt wird.
In der UDF sind eigentlich nur 5 Zeilen Code.
Warum müssen UDFs mit *CALLER gewandelt werden?
Ich meine, wie wirkt sich das aus?
Wer andren eine Bratwurst brät, hat ein Bratwurstbratgerät!
-
Warum müssen UDFs mit *CALLER gewandelt werden?
Müssen nicht!
SQL UDFs werden standardmäßig mit der Aktivierungsgruppe *CALLER erstellt und kann dies nicht ändern.
Externe UDFs erhalten die Aktivierungsgruppe, die für das Service-Programm, in denen sich die Prozeduren befinden gesetzt wurde. Bei Service-Programmen ist der Unterlassungswert *CALLER, aber es macht durchaus auch Sinn Service-Programme in einer benannten Aktivierungsgruppe laufen zulassen, z.B. wenn in dem Service-Programm viele Prozeduren sind, die von vielen (Service-)Programmen verwendet werden z.B. Datumsrechnung. In diesem Fall wird das Service-Programm nur ein einziges Mal im Job-Speicher aktiviert und kann von allen Programmen verwendet werden. Im anderen Fall (Aktivierungsgruppe *CALLER), würde für jeden Aufruf aus einer anderen Aktivierungsgruppe eine Kopie des Programms aktiviert werden.
Aktivierungsgruppe *NEW ist für Service-Programme nicht erlaubt!
Service-Programme, in denen allerdings Insert, Updates oder Deletes (oder die entsprechenden native I/O Befehle) verwendet werden, sollten mit Aktivierungsgruppe *CALLER erstellt werden, um eine hohe Transaktionssicherheit zu garantieren. Der Unterlassungswert für Commitment Scope im Befehl STRCMTCTL ist Aktivierungsgruppe, d.h. ein Commit oder Rollback erfolgt nur innerhalb der gleichen Aktivierungsgruppe. (... und was viele nicht wissen, wird mit SQL und Commitment Control gearbeitet, startet SQL die Commitment Control selber, sofern sie nicht gestartet ist und zwar mit Default-Werten!).
In UDFs sollten die Anzahl der Dateizugriffe auf ein Minimum reduziert werden, und keine Inserts, Updates oder Deletes erfolgen. (Dazu sind Stored Procedures da!). Der Grund dafür liegt darin, dass UDFs normalerweise aus einem Select-Statement aufgerufen werden.
Enthält eine Funktion keine Dateizugriffe, oder nur wenige Lesezugriffe, erübrigt sich das Thema Commit oder Rollback in der UDF verwenden zu wollen.
Birgitta
-
Tja, wie immer gibt es noch viel zu lernen ...
Mit Stored Procedures kann ich leider noch nichts anfangen, da muß ich mir erst noch ein bisschen Literatur gönnen.
Vielen Dank für die Infos!
Mfg Peter
Wer andren eine Bratwurst brät, hat ein Bratwurstbratgerät!
Similar Threads
-
By DoktorNo in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 16-07-08, 14:13
-
By cs400_de in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 14-01-08, 12:55
-
By hs in forum IBM i Hauptforum
Antworten: 15
Letzter Beitrag: 07-11-06, 19:28
-
By Marsman in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 11-07-06, 10:50
-
By ltsrole in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 21-10-04, 16:20
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