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.
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.
Danke & Gruesse
feri
Zuletzt geändert von feri am 23. Februar 2009 14:05, insgesamt 1-mal geändert.