-
return, *inlr=*off verlässt nur ... *inlr=*on beendet.
-
Hallo Robert,
vielen Dank für deine Antwort. Der Unterschied ist mir bekannt...leider bleibt mir der Sinn Deiner Antwort unklar. Wahrscheinlich bin ich einfach mental blockiert Und bevor ich anfange zu interpretieren: vielleicht erlaubt es ja Deine Zeit nochmals ein wenig ausführlicher zu antworten, das wäre schön!
mfG
Siggi
-
Ich weiss jetzt nicht in wieweit ich durch den folgenden Vorschlag in Euer Design eingreife.
So wie es aussieht, werden mit jedem Aufruf der Prozedur aus Service-Program C statische Deskriptoren gebildet, die den Speicher blockieren und bei Beenden der Prozedur nicht freigeben.
*INLR = *ON wird auch nicht helfen, da der Speicher in einer ILE-Umgebung dadurch nicht freigegeben, sondern reserviert bleibt bis die Aktivierungsgruppe, in der das Programm oder Service-Programm läuft beendet wird.
Ich würde versuchen das Service-Programm C in einer benannten Aktivierungsgruppe (z.B. SrvPgm-Name = Aktivierungsgruppe) laufen lassen und nach jedem Aufruf diese Aktivierungsgruppe explizit mit dem CL-Befehl RCLACTGRP(SrvPgm) schließen. Dadruch müsste der Speicher freigegeben und die Deskriptoren wieder gelöscht werden. Wie sich das Ganze performancemäßig verhält bleibt auszuprobieren.
Eine andere Frage, die sich stellt:
Ist der Aufruf des APIs unbedigt erforderlich oder kann die Prozedur im 2.Service-Programm, die den Prozedur-Pointer zurückgibt nicht direkt aufgerufen werden?
Birgitta
-
Hallo Birgitta,
auch Dir lieben Dank für Deine Antwort. Das srvpgm C war ursprünglich "nur" eine COPY-Strecke und wird auch als solche noch in manchen Programmen verwendet. Dort kommt es nicht zu diesem Problem. Leider kann ich aber, da wir auch gekaufte Software einsetzen, diese Copy-Strecke dort nicht nutzen...
Da es sich bei srvpgm C um ein (das) zentrale Ermittlungsprogramm für die angeforderte Funktion handelt, möchte ich da auf gar keinen Fall (Performance) mit einer benannten actgrp usw. arbeiten.
Es muß doch da noch einen anderen Weg geben!?
mfG
Siggi
-
Bei einer Pipe werden ja 2 Descriptoren geöffnet!
Bist du sicher, dass du auch beide schließt "close()-Funktion"?
-
ja, bin mir sicher, daß beide geschlossen werden...
-
Soganz kann ich da was nicht nachvollziehen, aber:
Das Programm D muss ja wohl irgendwie das Handle der Pipe noch übergeben bekommen, sonst kann ja auf der Empfangsseite nichts ankommen.
Ich vermute daher mal, dass der Close nicht erfolgreich ist, da noch irgendeine Ressource belegt ist.
Wie erfolgt denn der Close ?
-
Hallo zusammen...
vielen Dank für die Hilfe.
Ich habe es jetzt folgendermaßen gelöst: Alle Programm sind mit actgrp=*caller erstellt, alle werden nur mit return verlassen (*inlr=*off) und im srvpgm C erstelle ich die pipe nur, wenn sie nicht bereits vorhanden ist...
So scheint es jetzt zu funktionieren...
Siggi
Similar Threads
-
By mk in forum NEWSboard Java
Antworten: 8
Letzter Beitrag: 21-04-11, 21:51
-
By robertki in forum NEWSboard Programmierung
Antworten: 25
Letzter Beitrag: 19-01-07, 08:42
-
By timeless in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 11-01-07, 12:04
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 10-01-07, 10:58
-
By jth in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 21-12-06, 11:13
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