Mule 3: flow control

Current situation:

I currently have a Mule ESB application with three threads that process messages coming from two different sources, these three threads are connected to each other using a VM queue.

Flow # 1:

Inbox (endpoint # 1) โ†’ (Message processing and conversion) โ†’ Outbox (endpoint # 3)

Flow # 2:

Inbox (endpoint # 2) โ†’ (Execute message processing and conversion) โ†’ Outbox (Endpoint # 3)

Flow # 3

Inbox (endpoint # 3) โ†’ (Perform message processing and conversion, do something) โ†’ Outbox

Problem / Problem:

Now what I want to do is enter the fourth thread, thread # 4, which receives status information from the incoming endpoint and is based on this information to prevent thread # 3 from running / prevent it from processing the incoming message.

In other words, I would like thread # 4 to start when the ESB application starts (like all threads that seem to automatically execute), and based on the status information that it receives from its incoming message, prevent / allow or enable / disable stream No. 3 when processing messages from endpoint No. 3.

Ideally, I require:

Requirements:

  • It should be possible to execute only through the XML mule stream, no additional POJO / custom Java objects.
  • # 4 ESB, .
  • , Flow # 3 .

, ?

, โ„– 3, โ€‹โ€‹ , , - โ†’ XML? , , , .

.

+5
1

MEL, :

<global-property name="gate_open" value="true" />

<flow name="gated-flow">
    <vm:inbound-endpoint path="gated.in" />
    <expression-filter expression="#[app.registry.gate_open]" />
    ...
</flow>


<flow name="gate-controller">
    <vm:inbound-endpoint path="gate.in"  />
    <expression-component>
      app.registry.gate_open = false
    </expression-component>
</flow>

vm://gate.in , gated-flow .

, VM.

+6

All Articles