2012-06-12 130 views
0

我使用mule 3.2.1,並有四個主流和一個子流。在每個主要流程中,我使用流程參考調用子流程。在子流程中,當我四次調用子流程時會創建多少個實例?這種方法會出現任何性能問題或出現任何錯誤?請給我建議這種方法。Mule Subflow和Flowreference

四個主流。

<flow name="DetailsFlow1" doc:name="DetailsFlow1"> 
    <inbound-endpoint address="${fd.address}" exchange-pattern="request-response" doc:name="Generic Point"/> 
    <logger message="PAYLOAD #[payload]" level="INFO" doc:name="Logger"/> 
    <cxf:jaxws-service port="80" serviceClass="com.integration.IFixedDepositDetails" mtomEnabled="true" enableMuleSoapHeaders="false" doc:name="SOAP"/> 
    <choice doc:name="Choice"> 
     <when expression="oprationService == 'fd-con'" evaluator="ognl"> 
      <processor-chain> 
       <component class="com.integration.impl.FixedDepositDetailsImpl" doc:name="Java"/> 
       <flow-ref name="fdcasterflows1Flow1" doc:name="Flow Reference"/>      
      </processor-chain> 
     </when> 
    </choice>   
</flow> 


<flow name="DetailsFlow2" doc:name="DetailsFlow2"> 
<flow-ref name="fdcasterflows1Flow1" doc:name="Flow Reference"/>    
</flow> 


<flow name="DetailsFlow3" doc:name="DetailsFlow3"> 
<flow-ref name="fdcasterflows1Flow1" doc:name="Flow Reference"/>    
</flow> 


<flow name="DetailsFlow4" doc:name="DetailsFlow4"> 
<flow-ref name="fdcasterflows1Flow1" doc:name="Flow Reference"/>    
</flow> 

一個子流

<sub-flow name="fdcasterflows1Flow1" doc:name="fdcasterflows1Flow1"> 
    <component class="com.GetDetails" doc:name="Java"/> 
</sub-flow> 

回答

0

我從你上面提到的問題的認識,該部件在原型範圍內創建。因此會爲組件的每個請求創建一個實例。

因此,在上述情況下,子流程被稱爲四次是四個實例。

如果將要使用組件的子流的請求過多,那麼肯定會有性能問題。所以在這種情況下,您可以選擇輪詢組件。

更多關於這個在Mule網站。 http://www.mulesoft.org/documentation/display/MULE3USER/Object+Scopes

希望這有助於..... :)

0

正如@ user1760178說,將創建您的組件的四個實例,並更好地使用存積組件配置。但是,如果您的Java組件是無狀態組件,那麼將singleton作用域與池組件相關聯會更好。

0

從我對上面提到的問題的理解中,組件是在原型範圍內創建的。因此會爲組件的每個請求創建一個實例。

因此,在上述情況下,子流程被稱爲四次是四個實例。

如果將要使用組件的子流的請求過多,那麼肯定會有性能問題。所以在這種情況下,您可以選擇輪詢組件。