-
XML-Verarbeitung
Hallo,
wir benutzen das Tool QXML4PR400, das es mal kostenlos von der IBM gab, um kleinere XML-Dateien zu verarbeiten. Das neue Toolkit ist ja inzwischen kostenpflichtig geworden. An sich funktioniert das auch sehr gut. Es läuft ein Job den ganzen Tag, der in gewissen Abständen in einem IFS-Verzeichnis nachschaut, ob neue Dateien da sind und verarbeitet diese dann. Es sind immer nur wenige Dateien und sie sind auch ziemlich klein. Vor kurzem ist uns jedoch aufgefallen, dass der temporäre Speicher dieses Jobs im Laufe des Tages stark ansteigt (bis auf mehrere GB).
Für die Verarbeitung verwenden wir den mitgelieferten DOM-Parser, wobei ich am Ende der Verarbeitung mit folgenden Funktionen die entsprechenden Elemente wieder beende/freigebe:
QxmlDOM_Document_delete(pDoc)
QxmlDOMParser_delete(pDOMParser)
QxmlTerm()
Die Belegung des temporären Speichers sieht man mit WRKACTJOB -> Auswahl 5 -> Auswahl 3.
Hat vielleicht jemand von Euch schon mal so ein Problem gehabt bzw. wie kann ich den temporären Speicher wieder freigeben (außer den Job zu beenden) ? Mit DEALLOC auf den betreffenden Pointern funktioniert's auf jeden Fall nicht.
Gruß,
KM
-
Ohne Job-Neustart überhaupt nicht.
Du kannst in diesem Fall nur die Verarbeitung splitten:
Nach Ablauf Zeitraster -> SBMJOB <Aktion>
Oder auf Java umstellen, da ist schon alles drin (sagt man).
-
Mit benannten Akivierungsgruppen für den Aufruf das ParserModuls müsste eigentlich der Speicher ebenfalls freigegeben werden.
-
Das Auflösen von Aktivierungsgruppen gibt nur den sog. automatischen und statischen Speicher, der direkt dem Programm zugeordnet wurde oder per %alloc zugewiesen wurde, wieder frei.
Pro Programm beschränkt sich dieser aber auf 16MB !
Wenn man mehr Speicher benötigt muss man Heap-API's bemühen, Tera-Space oder nach alter Methode USRSPC-Objekte.
Per MI-Befehl CRTS (auch als C-Funktion verfügbar) kann man USRSPC-Objekte in der QTEMP erstellen (max. 16MB) die nicht sichtbar sind aber als ganz normaler Speicherbereich angesprochen werden können.
Automatisch werden diese nicht freigegeben !
Jetzt kommt noch das Problem dazu, dass ein REPLACE eines USRSPC dazu führt, dass das vorherige in die QRPLOBJ verschoben wird und dort ebenso nicht sichtbar ist.
Ein Auflösen der Aktivierungsgruppen gibt diese Resourcen leider nicht frei.
Jetzt gibt's eben obige Möglichkeit:
1. Per SBMJOB erhält man erst mal eine saubere QTEMP.
2. Bei CRTS oder CRTUSRSPC mit REPLACE gibts kein vorheriges Objekt
3. Nach Jobende ist alles wieder weg (jedenfalls fast!)
Similar Threads
-
By vige1000 in forum NEWSboard Linux
Antworten: 4
Letzter Beitrag: 21-12-06, 11:56
-
By RLurati in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 20-10-06, 09:09
-
By RLurati in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 20-10-06, 08:31
-
By Weki in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 11-09-06, 13:31
-
By kuempi von stein in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 05-07-06, 08:50
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks