Der JavaCompute-Knoten verfügt über zwei Ausgabeterminals: das Ausgangsterminal und das alternative Terminal. Daher können Sie den Knoten sowohl als Filterknoten als auch als Knoten zur Nachrichtenumsetzung verwenden. Geben Sie die Nachricht nach der Verarbeitung mithilfe der Methode propagate() an ein Ausgabeterminal weiter.
out.propagate(assembly);
Verwenden Sie folgende Methode zur Weiterleitung der Nachrichtenassembly an das alternative Terminal: alt.propagate(assembly);
MbMessage outMessage = new MbMessage(inMessage);
MbMessageAssembly outAssembly = new MbMessageAssembly(inAssembly, outMessage);
...
newMsg.finalizeMessage(MbMessage.FINALIZE_NONE);
out.propagate(outAssembly);
...
newMsg.finalizeMessage(MbMessage.FINALIZE_NONE);
out.propagate(outAssembly);
MbOutputTerminal.propagate(MbMessageAssembly, true)
Dieser Code stellt nach der Weitergabe die Nachrichtenbaumstruktur und die Parserressourcen wieder her, damit diese Ressourcen verwendet werden können, wenn das nächste MbMessage-Objekt für die Weitergabe erstellt wird. Ein Beispiel hierfür finden Sie unter Mit umfangreichen Eingabenachrichten zur Weitergabe mehrerer Ausgabenachrichten arbeiten.Wenn Sie diesen Code verwenden, werden die Ressourcen der Nachrichtenbaumstruktur für die nicht schreibgeschützten MbMessage-Objekte in der MbMessageAssembly freigegeben. Folglich wird die Methode MbMessage.clearMessage(true) für jedes änderbare MbMessage-Objekt aufgerufen. Daher können diese MbMessage-Objekte nicht erneut verwendet werden.
Falls Nachrichtenbaumstrukturfelder bei den einzelnen MbMessage-Objekten lokal festgelegt waren oder nur zwischen den drei MbMessage-Objekten ab- oder angehängt wurden, werden die Parser ebenfalls zur Wiederverwendung wiederhergestellt. Wenn jedoch Elemente abgehängt und an ein nicht weitergegebenes MbMessage-Objekt angehängt wurden, können die Parser in den nächsten Iterationen von Eingabedatensätzen nicht wiederverwendet werden.
Rufen Sie bei derartigen, nicht weitergegebenen MbMessage-Objekten die Methode MbMessage.clearMessage(true) explizit auf, bevor der nächste Eingabedatensatz verarbeitet wird. Bei dieser Methode können Parser wiederverwendet werden.