Transfer von Binärdateien

Oftmals möchte man Binärdateien 1:1 von A nach B transportieren. Mirth Connect kennt für den Transfer von binären Dateien keinen eigenen Datentyp. Man kann sich hier behelfen, indem man die Binärdaten MIME-codiert in einen XML-Container verpackt. Die Datentypen für Quelle un Ziel müssen jeweils als XML definiert werden. Als File Type wählt man binary, wodurch die Daten MIME-codiert werden

Mittels eines prepocessor scriptes werden die Daten in XML verpackt:

bindata_preprocessor

// Modify the message variable below to pre process data
message="<XML><PassThrough>"+message+"</PassThrough></XML>;";
return message;

Innerhalb eines destination connectors definiert man dann einen Transformer, der die Daten in einer Channelvariablen ablegt.

transformer_map_passthrough

Schlussendlich wird in Konfiguration des destination connectors eingestellt, dass die Daten wieder in Binärform aus der Channelvariablen $(PassThroughDate) ausgegeben werden.

destination_passthough

Die zu transferierenden Dateien dürfen nicht zu groß sein. Ansonsten erhält man eine Fehlermeldung

ERROR-300: Transformer error
org.mule.umo.transformer.TransformerException: Java heap space (java.lang.OutOfMemoryError)

Man kann dann versuchen mit der Startoption -Xms der JVM in der Datei mirthconnect_service.vmoptions die Größe des Heapspaces zu vergrößern.