Freigegben von nicht benötigtem Speicher

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Freigegben von nicht benötigtem Speicher

Beitrag von a-dead-trousers (Top Expert / 4419 / 224 / 1189 ) »
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 :shock:

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

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Freigegben von nicht benötigtem Speicher

Beitrag von ChrisB (Specialist / 408 / 8 / 20 ) »
Hi ADT!

So ein ähnliches Thema hatte ich vor kurzem auch bei einem Kunden - da hat die interne Puffer-Version so viel Speicher verbraucht, dass diese Version deutlich langsamer war, wie die Variante ohne interne Pufferung und jedesmal mit direkt Datenbankzugriff. Ich vermute mal, das kommt aber immer auf das jeweilige Szenario an und ist nicht immer so :wink:

Und welchen Standard-Baustein geht es Dir denn? Das habe ich jetzt in Deinem Posting noch vermisst... vielleicht gibts da ja einen Parameter um die interne Pufferung zu deaktivieren? Aber das hast Du vermutlich schon geschaut gehabt...

Viele Grüße
Chris

Re: Freigegben von nicht benötigtem Speicher

Beitrag von a-dead-trousers (Top Expert / 4419 / 224 / 1189 ) »
hi!

Ich glaub kaum, dass hier im Forum viele etwas mit unserem IS-H (Hospital) und dem betroffenen FuBa (Prüfung der Leistungsregeln) was anfangen können, daher war meine Frage allgemein gehalten ;)
Inzwischen (vor knapp 1 h, hatte noch keine Zeit zu posten) haben wir eine Möglichkeit gefunden, wie man den fraglichen Puffer löschen kann.
Dank Debugger und Speicheranalyse haben wir die betroffene interne Tabelle identifizieren können und dafür hats dann auch einen Lösch-Baustein gegeben.
(Ansonsten wäre ASSIGN (...)... TO <...> zum Zug gekommen *muhahaha* :evil: )

Es wäre (für mich) nur noch interessant zu wissen, ob es überhaupt eine Möglichkeit gäbe ein geladenes (Teil-)Programm (z.B. Funktionsgruppe) mitsamt der gepufferten Daten zur Laufzeit aus dem Speicher zu verbannen.

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

Re: Freigegben von nicht benötigtem Speicher

Beitrag von ChrisB (Specialist / 408 / 8 / 20 ) »
Hi ADT,
okay, mit IS-H kenne ich mich selbst nicht aus... aber
a) kennt man ab und zu jemanden, der jemanden kennt (in dem Fall kenne ich zufällig wirklich jemanden der IS-H mitenwickelt hat... :roll: )
und
b) wollte ich eben genau auf diesen Lösungsansatz raus... globale Pufferungs-Variable finden und dann einen anderen Baustein, der diese wieder initialisiert... :wink:
Grüße
Chris

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1213
Views
HANA-Speicher
von Steve95 » 22.03.2022 14:52 • Verfasst in SAP HANA für Anfänger
6
Antw.
2868
Views
Winword bleibt im Speicher
von Kaiwalker » 01.12.2005 09:31 • Verfasst in ABAP® Core
8
Antw.
4736
Views
Speicher & Performance Problem bei XML einlesen
von Zubasa » 15.06.2011 13:48 • Verfasst in ABAP® für Anfänger
9
Antw.
4127
Views
Tabelle-Speicher-Event - zugreiffbar?
von Sapianer » 30.08.2011 16:20 • Verfasst in ABAP® Core
2
Antw.
1026
Views
Programm als exe oder ähnliches Speicher?
von drama » 28.01.2016 08:29 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Mahnung erstellen
Gestern von wreichelt 2 / 57
Absprung VA02 Position
Gestern von gs3rr4 gelöst 3 / 75
OPD Druck im SPOOL
Gestern von Manfred K. 1 / 46

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Mahnung erstellen
Gestern von wreichelt 2 / 57
Absprung VA02 Position
Gestern von gs3rr4 gelöst 3 / 75
OPD Druck im SPOOL
Gestern von Manfred K. 1 / 46