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?