2013-08-20 2 views
2

하나의 흐름에서 생성되어 다른 흐름으로 전달되는 세션 변수에 의존하는 두 가지 흐름이 있습니다. 두 개의 비동기식 흐름에서 사용되는 세션 변수에 의존하는 것이 안전합니까? 나는 뮬 애플리케이션이나 주어진 뮬 메시지에서 'sessionVars'의 범위를 완전히 이해하지 못했을 것으로 생각한다.여러 비동기 흐름간에 공유 할 정보를 저장하기 위해 세션 변수에 의존하는 것이 안전합니까?

+0

를 만들 수 있습니다에서 여기

'

흐른다? 'flow-ref' 또는 VM 대기열을 사용합니까? –

+0

VM 대기열. 차이점이 뭐야? – GarySharpe

+1

VM 대기열을 사용하면 flowVars를 사용할 수 없으므로 in/out 속성이 복잡해지기 때문에 세션이 실제로 최선의 방법입니다. –

답변

3

뮬 세션은 스레드간에 공유되는 Java EE 세션과 아무 관련이 없습니다. 노새 세션은 MuleMessage의 일부이며 어떻게 작동하는지는 here으로 설명됩니다. 따라서 이동하려는 동일한 메시지를 처리하는 여러 플로우에서 무언가를 공유하고 싶다면.

당신은 메시지 을 처리하는 흐름 값을 저장하고 objectstore

0
에이 값을 저장 고려해야 메시지를 B을 처리하는 흐름에서 그 값을 선택하는 방법으로 찾고 대신하는 경우

세션 변수가 요청 - 응답 인 HTTP 끝점으로 반환된다는 것은 확실합니다. 이로 인해 중요한 데이터가 노출 될 수 있습니다. 나는 원래의 언급과 공식 완화 전략을 찾으려하지만 아직 그것을 다시 찾지 못했습니다. 찾을 I가 ...

` < HTTP 찾던 일 : 커넥터 이름 = "NoSessionConnector"

그러나 쉬운 솔루션은

편집 흐름의 반환 시점에서 그들을 제거하는 것입니다 >
            < 서비스 우선 sessionHandler = "org.mule.session.NullSessionHandler"/>
</HTTP : 커넥터> 'HTTP 응답 헤더'

http://www.mulesoft.org/documentation/display/current/HTTP+Transport+Reference

또는, 당신은 또한 당신이 다른 사람을 호출하려면 어떻게 정의 SessionHandler

+0

안녕하세요, 론도, 지금 당장이 문제에 착수하고 있습니다. 지금 당신이 참조하는 것을 정확하게 찾고 있습니다. HTTP 호출에서 헤더로 보내지는 세션 변수에 대한 '완화 전략'을 찾고 있습니다. 이런 이유로 stackoverflow에 두 번째 질문을 게시하려고했습니다. – GarySharpe

+0

@GarySharpe 나는 정보를 가지고 나의 반응을 편집했다. – Rondo