2014-02-24 2 views
4

에서 개인 흐름 비동기 호출뮬 처리 전략은 내가 지금 같은 주요 동기 흐름 비동기 개인 흐름 전화를 시도하고 동기 흐름

<flow name="main" doc:name="main" processingStrategy="synchronous"> 
    <poll frequency="10000"> 
     <set-payload value="main"></set-payload> 
    </poll> 

    <flow-ref name="async-private" /> 
    <flow-ref name="private" /> 

</flow> 
<flow name="private" processingStrategy="synchronous"> 
    <logger level="ERROR" message="sync" /> 
</flow> 

<flow name="async-private" processingStrategy="asynchronous"> 
    <logger level="ERROR" message="async" /> 
</flow> 

를하지만 다음과 같은 예외가 작동하고 결과를하지 않습니다

동기 이벤트를 비동기 적으로 처리 할 수 ​​없습니다. 메시지 페이로드 유형 : String (org.mule.api.MessagingException)

여기 무슨 일이 일어나고 있습니까?

UPDATE 내가 <async> 태그 비동기 흐름 심판 포장 경우 작동

. 그러나 왜 이것을해야합니까? 그게 버그 야?

답변

9

이것은 기능입니다.

명시 적 동기식 흐름에 있으며 명시 적 비동기식 호출을 시도합니다. 비동기식 플로우의 응답은 결코 호출자 플로우로 리턴하지 않습니다. 따라서 메시지를 잃을 가능성이 있습니다. 따라서 Mule은 사용자가 명시 적으로 말하고 <async> 태그로 감싸 야합니다.

+2

FWW 저는 셀프 프로모션을 싫어하기 때문에 이것을 코멘트로 추가하고 있습니다 만,이 행동은 Mule in Action의 2 판 2 장에서 자세히 설명됩니다. –

+0

훌륭합니다, 감사합니다. –