Laufzeitfehler TSV_TNEW_PAGE_ALLOC_FAILED

Getting started ... Alles für einen gelungenen Start.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Laufzeitfehler TSV_TNEW_PAGE_ALLOC_FAILED

Beitrag von kbit100 (Specialist / 130 / 42 / 0 ) »
Hallo zusammen,

ich lese aus Textdateien Sätze aus und schreibe diese nach einer Aufbereitung in eine R/3-Tabelle im eigenen Namensraum. Dabei wird die Textdatei Satz für Satz ausgelesen und die Daten in einer internen Tabelle gesammelt. Wenn 30000 Sätze erreicht sind, dann wird der Inhalt der internen Tabelle in die R/3-Tabelle geschrieben (INSERT). Anschließend wird die interne Tabelle gelöscht (refresh) und es wird weiter verarbeitet.

Nachdem 15 Blöcke mit je 30000 Sätzen geschrieben worden sind, donnert das Programm auf einen Kurzdump:
Laufzeitfehler TSV_TNEW_PAGE_ALLOC_FAILED


Kurztext
Kein Speicher für Erweiterung einer internen Tabelle mehr verfügbar



Was ist passiert?
Eine programminterne Tabelle sollte erweitert werden. Der dafür
erforderliche Platz war aber nicht verfügbar.



Fehleranalyse
Die interne Tabelle "\PROGRAM=SAPMSSY0\DATA=%_LIST" konnte nicht mehr erweitert
werden. Um die
Fehlerbehandlung zu ermöglichen, mußte die Tabelle noch vor der
Aufbereitung dieses Protokolls gelöscht werden. Dies hat zur Folge, dass
die Tabelle weiter unten oder, wenn von hier aus in den ABAP-Debugger
gesprungen wird, mit 0 Zeilen angezeigt wird.

Zum Zeitpunkt des Abbruchs wurden für die betroffene interne Tabelle die
folgenden Kenndaten ermittelt:

Speicherort: "Session memory"
Zeilenbreite: 276
Zeilenanzahl: 4316848
Allokierte Zeilen: 4316848
Neu angeforderte Zeilen: 32 (in 1 Blöcken)


Auszug des Quellcodes aus dem Kurzdump:

Code: Alles auswählen.

  109 *    CLEAR: lw_outtab.
  110     CLEAR: gw_zieltab.
  111 
  112 **** Felder der Zieltabelle bearbeiten 
  113     LOOP AT lt_indat ASSIGNING <l_indat>.
  114       ld_ix = sy-tabix + 1.
  115 
  116       READ TABLE st_dd03 ASSIGNING <l_dd03>
  117                  WITH KEY position = ld_ix.
  118       IF sy-subrc = 0. 
  119         IF <l_dd03>-fieldname(7) = 'FELDLEN'.
  120           ld_ix = ld_ix + 1.
  121           READ TABLE st_dd03 ASSIGNING <l_dd03> 
  122                 WITH KEY position = ld_ix.
  123         ENDIF.
  124         IF sy-subrc = 0. 
  125           CONCATENATE 'GW_ZIELTAB-' <l_dd03>-fieldname
  126                      INTO ld_fieldname.
  127           ASSIGN (ld_fieldname) TO <l_field>.
  128           IF  <l_dd03>-datatype(3) = 'DEC'.
  129             TRANSLATE <l_indat>-field USING ',.'.
  130           ENDIF. 
  131           IF <l_indat>-field(1) = '"'.
  132             SHIFT <l_indat>-field LEFT
  133             DELETING LEADING '"'.
  134             REPLACE c_anfstriche WITH c_hochkomma INTO <l_indat>-field.
  135           ENDIF.
  136 * 
  137           CATCH SYSTEM-EXCEPTIONS convt_no_number = 2.
>>>>>             WRITE: / ld_fieldname,<l_indat>-field,ld_tabname.
  139             IF ld_fieldname = 'GW_ZIELTAB-FIRNUM'.
  140               IF  <l_indat>-field = '999'.
  141                 ld_noimp = 'X'. 
  142               ENDIF.
  143 *              IF  <l_indat>-field = '000'. 
  144 *                ld_noimp = 'X'.
  145 *              ENDIF.
  146             ENDIF.
  147             <l_field> = <l_indat>-field.
  148           ENDCATCH.
  149 *   
  150           IF sy-subrc = 2.
  151             CLEAR: <l_field>.
  152             WRITE: / 'CONVT_NO_NUMBER : ' , ld_inrec-rec.
  153           ENDIF.
  154         ENDIF.
  155       ENDIF.
  156     ENDLOOP. 
In der Kurzdumpbeschreibung steht die Markierung >>>>> an einer Stelle, die aber m.E. mit der Größe einer internen Tabelle nichts zu tun hat. Ich muss gestehen, dass ich auf dem Schlauch stehe. Die auszulesende Textdatei hat über 490000 Sätze. Mit kleineren Textdateien (bspw. 170000 Sätzen) klappt alles hervorragend. Hat jemand einen Tipp für mich, was ich falsch mache? Oder ist das eine Sache für die Basis (Speicherbedarf für temporäre Daten, obwohl die interen Tabelle maximal 30000 Sätze enthält.)?
Danke im voraus für Eure Mühe.

Gruß

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


Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
So wie ich das sehe, wolltest du eine Liste mit über 4.316.848 Zeilen (4Mio) ausgeben.

Ist das nicht ein wenig zu Gross??? :?:

P.s. die Interne Tabelle wo angemeckert wird heisst hier "\PROGRAM=SAPMSSY0\DATA=%_LIST".
Wofür wohl das =%_LIST steht?

Beitrag von kbit100 (Specialist / 130 / 42 / 0 ) »
Hi,

du hast Recht! Die angezeigte Zeile mit dem WRITE-Befehl war schuld. Da gibt er natürlich Millionen Zeilen aus. Das ist natürlich Quatsch.

Ich werde jetzt eine Stunde ob meiner eigenen Beschränktheit leise in mein Kissen weinen und dann getröstet weiter arbeiten. Snief!

Gruß
;-)

Seite 1 von 1

Vergleichbare Themen

2
Antw.
2483
Views
index.html Fehlermeldung Failed to load resource: net::ERR_F
von AliR » 12.08.2015 16:07 • Verfasst in Web-Dynpro, BSP + BHTML
2
Antw.
2786
Views
Laufzeitfehler
von Gast » 13.06.2005 09:28 • Verfasst in ABAP® für Anfänger
11
Antw.
7681
Views
Laufzeitfehler GETWA_NOT_ASSIGNED
von Alexi » 10.08.2005 12:17 • Verfasst in ABAP® für Anfänger
6
Antw.
5991
Views
Laufzeitfehler POSTING_ILLEGAL_STATEMENT
von overbull » 18.03.2015 11:16 • Verfasst in ABAP® Core
8
Antw.
7911
Views
Laufzeitfehler LIST_TOO_MANY_LPROS
von scott111 » 03.05.2006 12:10 • Verfasst in Dialogprogrammierung

Über diesen Beitrag


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

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 751
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2375
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8961