Mule 3: Steuern, ob ein Flow ausgeführt werden darf

Meine aktuelle Situation:

Ich habe derzeit eine Mule ESB-Anwendung mit drei Flows, die Nachrichten aus zwei verschiedenen Quellen verarbeiten. Diese drei Flows werden über eine VM-Warteschlange miteinander verbunden.

Flow # 1:

Eingehend (Endpunkt 1) -> (Nachrichtenverarbeitung und Transformationen durchführen) -> Ausgehend (Endpunkt 3)

Flow # 2:

Eingehend (Endpunkt 2) -> (Nachrichtenverarbeitung und Transformationen durchführen) -> Ausgehend (Endpunkt 3)

Flow # 3

Eingehend (Endpunkt 3) -> (Nachrichtenverarbeitung und -transformationen durchführen, Aufgaben erledigen) -> Ausgehend

Problem / Ausgabe:

Nun möchte ich einen vierten Flow einführen, Flow # 4, der Statusinformationen von einem eingehenden Endpunkt abruft und auf der Grundlage dieser Informationen verhindert, dass Flow # 3 jemals ausgeführt wird bzw. seine eingehenden Nachrichten verarbeitet.

Mit anderen Worten, ich möchte im Idealfall, dass Flow # 4 beim Start der ESB-Anwendung ausgeführt wird (wie es anscheinend alle Flows automatisch tun) und basierend auf den Statusinformationen, die er aus seiner eingehenden Nachricht erhält, Verhindern / Zulassen oder aktivieren / deaktivieren Sie Flow # 3 für die Verarbeitung von Nachrichten von Endpoint # 3.

Folgendes benötige ich im Idealfall:

Bedarf:

Müssen in der Lage sein, ausschließlich über den Mule Flow XML keine zusätzlichen POJO / Custom Java Objekte zu bewerkstelligen.Flow # 4 muss beim Start der ESB-Anwendung ausgeführt werden und es muss nur die erste eingehende Nachricht verarbeitet werden.Im Idealfall möchte ich nicht, dass Flow # 3 eine zusammengesetzte eingehende Quelle hat oder dass jede eingehende Nachricht den Status einer globalen Variablen auswertet.

Was ist der beste Weg, um das zu erreichen, was ich tun möchte?

Wenn es keine wirklich gute Lösung gibt, wenn ich die Anforderung Nr. 3 weglassen muss, was ist dann der beste Weg, um eine solche globale Variable zu erreichen, die von zwei unabhängigen Flüssen gemeinsam genutzt wird, die nicht durch einen ausgehenden -> eingehenden Endpunkt in der Datenbank verknüpft sind? XML-Konfiguration? Ich habe versucht, Sitzungseigenschaften zu verwenden, aber sie erfordern, dass die Flüsse entweder als Unterflüsse oder durch einen Endpunkt miteinander verbunden sind.

Vielen Dank.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage