문제

따라서 솔루션에 필요한 모델은 다음과 같습니다.

데이터베이스를 폴링하고 결과를 기반으로 더 많은 데이터에 대한 데이터베이스에 요청을 작성하고 응답을 가져 와서 프로모션 된 속성을 기반으로 한 포트 그룹으로 전달해야합니다. 포트 중 하나만 작동합니다.

다음과 같이 보입니다.

그러나 보내기 포트 그룹에 "온도 아웃"을 할당하면 각 포트의 필터에 따라 메시지가 그룹의 모든 포트로 전송됩니다. 내 이해에서 이것은 예상되는 행동입니다 (읽기 여기).

그래서 SDK와 같은 컨텐츠 기반 라우팅 (CBR 샘플)과 같은 다른 옵션을 탐색했습니다. 당신은 이것을 볼 수 있습니다 여기.

나는 이것을 시도하고 오케스트레이션을 완전히 제거했습니다 (실제로는 필요하지 않습니다). 그러나 주요 라우팅/구독 오류가 있으며 추가 연구에 따르면 권유 응답 포트가 있으면이 작업을 수행 할 수없는 것으로 보입니다. 그것에 관한 일부 기사 여기. 나는 거의 같은 문제가 있습니다 이것 사용자는합니다.

결국 오케스트레이션을 사용하는지 여부는 중요하지 않습니다. 그러나 메시지를 여러 전송 포트에 전달할 수있는 솔루션이 필요하며 실제로 메시지를 사용하고 보내는 것만 할 수 있습니다. 오케스트레이션에 다른 항목이나 하드 코드 결정을 수정할 필요없이 포트를 쉽게 편집하고 추가 할 수 있도록 필요합니다.

도움이 되었습니까?

해결책 2

CBR 예제 모델이 실제로 작동한다는 것을 알았습니다. 라우팅 문제는 구독이었습니다. Send 포트를 Solict-Response 포트로 구독하려면 BTS.ReceivePort 필터 대신 BTS.SpName (Send Port Name) 필터를 설정해야했습니다. 이렇게하면 메시지가 올바르게 필터링되었습니다. 당신은 대답이 효과가 있었지만 피하려고했던 오케스트레이션을 사용해야합니다.

다른 팁

당신이 사용할 수있는 직접 바인딩 오케스트레이션의 전송 포트에서 메시지를 메시지 상자 DB에 다시 주입합니다. 여러 포트 그룹을 사용하여 각 포트 그룹은 원하는 메시지 유형을 직접 구독하고 프로모션 된 속성에서 필터를 구독 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top