Skip to main content

I have a flow which is triggered by Oracle Advanced Queuing (JMS) (premium adapter: https://docs.mulesoft.com/oracle-ebs-122-connector/latest/oracle-ebs-122-connector-reference#BusinessEventsSource).  This flow references to a subflow for distributing the records to different flows (flow reference).  In this flow exists a Scatter-Gather, which sends the record to another MuleSoft app (HTTPS request) too.  If a mass update of records happens, the other MuleSoft app stops accepting new request (back-pressure) and therefore many records are never processed by the other app.    My goal is to slow down the first app, that no back-pressure occurs. We don't have enough resources to increase the vCores on the other app.  I tried to set MaxConcurrency on the very first flow (which includes the JMS-trigger). But it doesn't have any effect.    What happens if I limit the Scatter-Gather with Max Concurrency?   https://help.salesforce.com/s/articleView?id=001123124&type=1  https://docs.mulesoft.com/mule-runtime/latest/tuning-backpressure-maxconcurrency  Does it also slow down the fetching of the JMS-Queue, even if we have flow references in between?  Or will those records still be fetched and loaded into the app until it runs out of memory..    I'm working with Anypoint Studio 7.20 and the apps are running on CloudHub (MuleSoft-Cloud, Runtime Version LTS 4.6).    Kind regards, Simon   

4 answers
  1. Manish Kumar Yadav (Hitachi Energy) Forum Ambassador
    Sep 15, 2025, 7:33 PM

    Hello Simon, 

     

    Especially since first flow level max concurrency setting alone might not throttle parallel executions downstream as you are using Sactter-Gather that's why it is not working. 

      

    Setting max concurrency at source flow level  if you set max concurrency more than 1 at scatter gather it became parallel excution ,  due to it source loose the control of thread,. that's why not working. 

     

    The reason it is working with max concurrency =1 because scatter gatter loose the parallel excution and it became sequential excution that's why source knows very well that any downstream below me is sequential, 

     

    Yes you can only set positive natural numbers as max concurrency. 

     

    Also answering your below question 

    Q. But must activate it on production to get more experience regarding throughput/processing time with this limit..  

    Answer: No, it would degrade the performance, trust me.  

     

    Alternative: 

    - Use schedular +Batch retirevel from Oracle (check the component if any)+Scatter gather ++ downstream system 

    - Use schedular +Batch retirevel from Oracle (check the component if any)+VM ++Scatter gather ++ downstream system 

    - Or Use Integration as you have just put VM component before Scatter Gather 

    - Deploy application on Multiple Worker so that Load would be distributed across worker from VM, Check schedular setting to start running on single worker and after VM multiple worker would come into picture. 

     

    Note: Excuse me for any typo as it is typed from Mobile device 

     

    Thanks, 

    Manish Kumar Yadav 

    Trailblazer Community Forum Ambassadors

0/9000