Siggi_
13-01-09, 09:20
Hallo liebe Leser...
ich habe da ein mich belastendes Problem und hoffe, jemand erbarmt sich meiner...
Kurzbeschreibung(alles ILE-RPG, V5R4):
pgm A(actgrp=*new) ruft per Funktionsaufruf pgm B auf.
pgm B(Actgrp=*caller) ruft per Funktionsaufruf mehrfach srvpgm C auf.
srvpgm C(actgrp=*caller) erstellt eine pipe(API Qp0zPipe), holt sich eine Funktionsadresse aus einem anderen srvpgm D und führt diese Funktion dann aus. Die pipe dient zur Kommunikation zwischen pgm C und D.
Ist D fertig, liest C die Antwort aus der pipe, schliest diese und wird beendet(return, *inlr=*off).
Wenn nun A mehrfach aufgerufen wird, macht C irgendwann die Grätsche und sagt: zu viele offene Descriptoren für diesen Prozess !?!?!??!?!
Es scheint also so, daß trotz des Schließens der pipe die beiden descriptoren immer noch im "Hintergrund" da sind.
Wie werde ich die wieder los? Ist das wirklich das Problem? Ich hab schon 'ne kahle Stelle am Kopf...
Hoffentlich kann da jemand helfen...
Beispielcode kann ich natürlich liefern, ich müsste nur wissen, was genau benötigt wird.
Siggi
ich habe da ein mich belastendes Problem und hoffe, jemand erbarmt sich meiner...
Kurzbeschreibung(alles ILE-RPG, V5R4):
pgm A(actgrp=*new) ruft per Funktionsaufruf pgm B auf.
pgm B(Actgrp=*caller) ruft per Funktionsaufruf mehrfach srvpgm C auf.
srvpgm C(actgrp=*caller) erstellt eine pipe(API Qp0zPipe), holt sich eine Funktionsadresse aus einem anderen srvpgm D und führt diese Funktion dann aus. Die pipe dient zur Kommunikation zwischen pgm C und D.
Ist D fertig, liest C die Antwort aus der pipe, schliest diese und wird beendet(return, *inlr=*off).
Wenn nun A mehrfach aufgerufen wird, macht C irgendwann die Grätsche und sagt: zu viele offene Descriptoren für diesen Prozess !?!?!??!?!
Es scheint also so, daß trotz des Schließens der pipe die beiden descriptoren immer noch im "Hintergrund" da sind.
Wie werde ich die wieder los? Ist das wirklich das Problem? Ich hab schon 'ne kahle Stelle am Kopf...
Hoffentlich kann da jemand helfen...
Beispielcode kann ich natürlich liefern, ich müsste nur wissen, was genau benötigt wird.
Siggi