[Allegro] Index: Speichergrenzen überschritten?

Bernhard Eversberg ev at biblio.tu-bs.de
Fr Okt 5 10:58:51 CEST 2012


Am 05.10.2012 10:19, schrieb Jörg Oberfell:
>
> Ursache scheint aber ein ak-Statement zu sein, bei dem sehr viele
> Indexeinträge entstehen, getrennt durch #t{8}. Eine Aufteilung auf
> mehrere ak-Statements löst bei mir momentan das Problem.
>
> Welche der Grenzen gilt für /das Ergebnis/ eines einzelnen ak-Befehls?
>

Dieses Ergebnis sammelt sich an im Bereich des Exportspeichers -
schließlich ist eine Indexierung auch ein Export. Ein ak-Befehl
produziert bei "normalen" Rxporten einen Exportsatz, also z.B.
eine Listeneintragung oder ein Kartenbild oder den Anzeigetext
für einen Datensatz. Beim Indexieren ist es eben alles das, was
bei Beginn an der Sprungmarke des ak-Befehls herauskommt,
wobei im Fall einer Mehrfach-Abarbeitung (ak=4..+K oder
ak=20" "+B o.a.) jede Abarbeitung einzeln behandelt wird,
d.h. es kommt nur darauf an, was bei EINEM Durchlauf rauskommt,
d.h. das darf nicht zu lang werden. Und zu lang, was Sie nun
wissen wolle, das wäre ca. 19,800 Bytes (135x150, die Dimension
des Exportbereichs). Natürlich ist das schwer einzuschätzen im
Vorhinein. Ohne Nutzung der Methode mit dem Separator 8 tritt
allerdings nie ein Problem auf, da ein einzelner Schlüssel ja
nur maximal 250 Byte lang werden kann.
Wir hatten die 8er-Trennmethode erst spät geschaffen, für ein paar
Spezialfälle eigentlich, und dabei eben, typisch kurzsichtig, nicht
erwartet, daß Nutzer davon freizügigsten Gebrauch machen würden ...

Man könnte den Bereich jetzt natürlich größer dimensionieren,
wenn man die Kompilierbarkeit und Lauffähigkeit unter MS-DOS
endgültig aufgibt. Dieser Schritt will aber gut bedacht und
mit hohem Testaufwand durchgeführt sein und steht demnach noch
aus.
Anzustellen wäre aber wohl nochmal ein Nachdenken über Möglichkeiten,
das Problem nicht nur abzufangen sondern im Fall der Überschreitung
auch eine zielführende Meldung zu produzieren. Klar, so etwas sollte
für ein heute laufendes System keiner weiteren Bemerkung wert sein,
sondern sich von selbst verstehen...

MfG B.E.





Mehr Informationen über die Mailingliste Allegro