[geloest] EDI Speicherproblem grosser Daten?

5. Februar 2009 09:23

Hallo,

wir haben bei uns derzeit ein Problem mit unserem Report, welcher EDI Daten ins Navision einliest.

Kurz zur Erklaerung:
Die EDI Daten werden via IBM MQ Series transportiert. Ein Report liest und schreibt in MQ Series Queues. Pro EDI Message wird eine MQ Series Message erstellt, wobei die max. Groesse ~4MB betraegt. Sollten groessere EDI Messages verschickt werden, koennen dieses aufgeteilt verschickt werden, diese werden dann beim Empfaenger wieder zusammengesetzt.

So weit, so gut. Dieser Report startet alle ~30 Sekunden, dabei liest er dann in einer Schleife alle Messages aus der entsprechenden Queue aus. Das funktioniert wunderbar, auch wenn mal ~20 Messages in der Queue sind.

Das Problem:
Sobald jetzt eine grosse gesplittete Message in der Queue liegt, und der Report diese ausliest, werden alle derzeit zusaetzlich in der Queue liegenden Messages zwar (lt. Debuggen) richtig ausgelesen und (scheinbar) in der Navision DB gespeichert, aber schlussendlich ist nur die grosse Message vorhanden, die restlichen sind wie vom Erdboden verschluckt. :shock:
Nach jeder ausgelesenen Message wird mit einem Commit die UOW abgeschlossen.

Es gibt keinen Fehler, keine Warnung, nichts. Die Daten sind einfach nicht da.

Meine Vermutung:
Neben dem erwaehnten "Auslesereport" werden noch 2-3 andere Reports, welche die Daten strukturieren, konvertieren und auf Logik pruefen, aufgerufen, da kommt dann einiges an Code zusammen.
Ích vermute, dass er hier wegen der groessen Message irgendwie ins Straucheln kommt und dann die Daten nicht speichert.

Hat hier jemand eine Idee, oder schon mal aehnliche Probleme gehabt?

Testen werde ich jetzt mal mit verschiedenen Cache Einstellungen.

--- edit ---
Auch mit deutlich erhoehtem Cache aendert sich das Verhalten nicht. :-?
Wenn alles nichts nuetzt, darf ich wohl oder uebel bei jedem Durchgang nur 1 Queue mit 1 Message auslesen. :cry:

Danke & Gruesse
feri
Zuletzt geändert von feri am 23. Februar 2009 14:05, insgesamt 1-mal geändert.

Re: EDI Speicherproblem grosser Daten?

10. Februar 2009 18:22

Hallo,

wenn wir über die datenbankbasierte Datenverarbeitung sprechen, passieren da kaum die Wunder. In einem „Wunderfall“ kriegen wir in der Regel eine Fehlermeldung. Ich habe solche bzw. ähnliche Situationen gehabt. Und immer die scheinbar nicht nachvollziehbaren Erscheinungen wurden später mit den Fehlern in der Logik erklärt. Manchmal ist es sehr schwer, das fehlerhafte Benehmen rauszufinden. Beim Denkfehler kann auch Debugger nicht immer helfen.

Ich vermute, dass bei der von dir beschriebenen Konstellation kommt auch zur solchen Situation, wo die Programmlogik ein Leck hat.

Gruß, Michael

Re: EDI Speicherproblem grosser Daten?

11. Februar 2009 17:01

Hallo,

so, habe nochmal alles ins kleinste Detail debugt und so den Fehler jetzt finden koennen. :-D
Beim Handling mit gesplitteten Messages arbeitet das Programm mit einem speziellen Filter. Dieser Filter war nach dem Auslesen der letzten aufgeteilten Message und fuer alle restlichen Messages, welche noch bei diesem Durchlauf ausgelesen werden sollten, aktiv.

Der Filter ist mir anfangs nicht negativ aufgefallen, da er im Hauptprogramm nicht beruecksichtigt wird, sondern erst 1-2 Reports spaeter / tiefer.

Gruesse
feri