hi!
Ich hab da ein Problem:
In unserem Workflow ist es notwendig einmal pro Tag einen bestimmten Funktionsbaustein für mehrere Fälle aufzurufen.
Meistens geht dabei alles gut, aber es kommt hin und wieder vor, dass die Verarbeitung aufgrund eines Speicherengpasses abbricht.
Der Aufruf erfolgt aus einem Z-Programm heraus, das per Batch-Job aufgerufen wird.
In diesem Programm haben wir schon alles mögliche ausprobiert um den Speicherbedarf so gering wie möglich zu halten, aber es gibt nach wie vor Probleme.
Der Funktionsbaustein ist ein Standardbaustein der einige Prüfungen durchführt und im Online-Modus (nur ein Fall) problemlos funktioniert.
Leider tritt das Problem nur sporadisch auf und lässt sich nie zuverlässig reproduzieren.
Unsere Vermutung ist, dass dieser Baustein intern soviele Daten einliest und buffert, dass bei umfangreichen Fällen zu einem Engpass kommt.
Bislang ist uns nur die Idee gekommen, den Baustein per RFC aufzurufen und jedesmal danach die Verbindung abzubauen, um den verwendeten Speicher wieder freizugeben. Hat aber den Nachteil, dass wir den aktuellen User im Protokoll haben wollen und daher die Anlage der RFC-Verbindungen eigentlich dynamisch erfolgen müsste und dann der User vielleicht zuviele Berechtigungen haben würde (Revision).
Gibt es noch irgendeine andere Möglichkeit, den Speicher eines geladenen Programms (Funktionsgruppe) zur Laufzeit freizugeben. Am Besten aufgrund der aktuellen Speicherauslastung, also brauch ich auch was mit dem man das zur Laufzeit ermitteln kann.
Grundsätzlich ist es ja nicht schlecht, dass diese Daten gebuffert werden und nicht jedesmal aus der Datenbank ermittelt werden, aber irgendwann geht sogar der Hauptspeicher zur Neige
lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.
ECC: 6.18
Basis: 7.50