Beschränkung für Messages der Communication Component?

11. März 2013 12:34

Ich verwende die NAV Communication Component, um Daten von einer Datenbank in die andere zu senden (technische Version 5.0 SP1). Es scheint aber so, als ob die Messages unvollständig sind, wenn sie eine bestimmte Größe überschreiten (ca. 100 KB).

Die Daten werden zuerst von einem XMLPort in ein temporäres BLOB Feld übertragen und anschließend in ein v6.0 Microsoft XML DOMDocument60 geladen. Der InStream für die Message wird dann aus dem DOMDocument generiert:

Code:
...
OutStream := OutMessage.GetStream;
CREATE(DOMDocument);
TempBlob.Blob.CREATEOUTSTREAM(BlobOutStream);
DataXMLPort.SETDESTINATION(BlobOutStream);
DataXMLPort.EXPORT;
 
TempBlob.Blob.CREATEINSTREAM(BlobInStream);
DOMDocument.load(BlobInStream);
DOMDocument.save(OutStream);
InMessage := OutMessage.SendWaitForReply(GetTimeout);
...
 


Der Empfang der Message schaut folgendermaßen aus:

Communication Component Event trigger "Messag" hat den VAR Parameter InMessage.

Code:
InStream := InMessage.GetStream;
CREATE(DOMDocument);
DOMDocument.load(InStream);


Beim Laden des InStreams in das DOMDocument tritt ein Fehler auf, dass die Elemente nicht korrekt geschlossen werden, so als ob der InStream nicht vollständig übertragen worden wäre. Keine Ahnung warum. Messages mit weniger Inhalt werden ohne Probleme übertragen und verarbeitet.

Weiß wer Bescheid, ob es eine Größenbeschränkung für die Communication Component Message gibt?

Problem liegt beim DOMDocument

12. März 2013 10:13

Anscheinend liegt die Beschränkung nicht bei der Communication Component Message, sondern am Zusammenspiel der Message mit dem DOM Document.
Wird der InStream aus der Message direkt in ein File oder per XMLPort in eine Tabelle eingelesen, dann gibt es bei der Kommunikation auch mit größeren Inhalten keine Probleme.