0
votes

I need some clarifications on VM Usage.

I have large flow in Mule ESB, where I'm using VM Inbounds in some flows.

Let say: Totally I have 3 flows with VM( Inbound) as starting point.

But I supposed to invoke this flows multiple times with VM ( outbound). For each transaction I'm calling nearly 20 times.

Again, I dont have multiple VM inbound endpoint( with different name), only 3 VM ( inbound), only these 3 VM is invoked multiple times. Will it impact performance ??? . Example for 1 flow as given below

   <flow name="Audit" doc:name="Audit">
    <vm:inbound-endpoint exchange-pattern="one-way" path="${vm.audit}" doc:name="Audit" connector-ref="MAIN_VM"/>
    <object-to-string-transformer doc:name="Object to String"/>
    <set-variable doc:name="Variable" value="#[payload]" variableName="capturePayload"/>
    <data-mapper:transform config-ref="Construct_Logger_XML" input-ref="#[flowVars[&quot;capturePayload&quot;]]" doc:name="DataMapper">
 <data-mapper:input-arguments>
     ...
 </data-mapper:input-arguments>
    </data-mapper:transform>
    <byte-array-to-string-transformer doc:name="Byte Array to String"/>
    <logger level="INFO"  doc:name="CaptureAuditLogs" message="AuditInfo:#[function:dateStamp], AuditLogPayload: #[payload]" category="AuditInfo">-
  </flow>

Hope, question is understandable. Looking for your thoughts. Mule version: 3.5.1 Thanks in advance.

1

1 Answers

2
votes

On the community edition, VM endpoints a nothing more than a in-memory queue, they are very fast.

To call a VM endpoint will be slightly slower than a flow-ref given that the hole transport mechanism is trigered.

If you are calling a flow from a flow, and you are not using mule EE you should probably prefer flow-ref over vm outbound, as the flow-ref will ignore the inbound endpoint and go straight to the processors.