2013-01-07 2 views
2

전자 메일을 보내는 용도로 뮬 응용 프로그램이 있습니다. 응용 프로그램은 다음 두 단계를 수행합니다.뮬 : 동일한 세션에서 여러 플로우가 발생했습니다.

1) 첫 번째 흐름에서는 끝점에서 요청을 받아 들여 VM 대기열에 씁니다.

2) 두 번째 흐름에서 vm 대기열의 메시지는 전자 메일을 보낼 웹 서비스 구성 요소에 HTTPPost로 전송됩니다.

그래서 지금까지 mule_config.xml에서 '세션'에 대해 아무 것도하지 않았습니다. 따라서 AFAIK, 두 흐름 모두 같은 세션에서 진행됩니다.

이제 동일한 세션에서 여러 개의 플로우를 사용하는 것이 좋습니까? 아니면 각 플로우마다 다른 세션을 가질 필요가 있습니까? 두 세션이 동일한 세션에서 실행되는 위 접근 방식의 장/단점은 무엇입니까?

답변

4

먼저 Mule의 세션은 웹 컨테이너의 세션과 다르다는 점에 유의하십시오. 이는 여러 플로우로 확장 될 수있는 특정 메시지 속성 범위 일뿐입니다. 이 예제를 실행하면

<flow name="SessionDemo"> 
    <vm:inbound-endpoint path="test.in" /> 
    <set-session-variable variableName="mySessionVar" 
     value="myValue" /> 
    <vm:outbound-endpoint path="next.in" /> 
</flow> 
<flow name="SessionPropagationDemo"> 
    <vm:inbound-endpoint path="next.in" /> 
    <logger message="#[sessionVars.mySessionVar]"/> 
</flow> 

, 당신은 mySessionVar 세션 범위 메시지 속성 (일명 세션 변수는) 다음 흐름에 VM 큐를 통해 전달 된 것을 볼 수 있습니다 :

는 다음과 같은 고려하십시오.

여러 플로우에서 메시지 등록 정보를 전달해야하는 경우 세션 변수를 사용하면 쉽게 사용할 수 있습니다. 그렇지 않으면 "호핑"에서 다음 플로우로 등록 할 때마다 수동으로 등록 정보를 수동으로 복사해야합니다. 전송 (flow-ref "홉"에는 해당되지 않음).

+0

의미가 있습니까? –

+0

예. 선생님 ... 고마워요. – user1717230

관련 문제