2009-03-03 6 views
2

그래서 내 솔루션을 필요로하는 모델이다 보내기 승진 된 부동산에 따라 항구 중 하나만이 행동 할 항구 그룹에 전달하십시오.Biztalk는 다음과 같이 포트 그룹 및 필터링

그것은 다음과 같습니다

http://i40.tinypic.com/2zq61qh.jpg

을 그러나 송신 포트 그룹에 "온도 아웃"할당하는 경우, 메시지가 그룹의 모든 포트로 전송, 필터의 선명하게 촬상 설정은 각 포트에. 내 이해에서 이것은 예상되는 동작입니다 (here을 읽으십시오).

그래서 SDK와 같이 Content Based Routing (CBR 샘플)을 사용하는 것과 같은 다른 옵션을 살펴 보았습니다. 이 here을 볼 수 있습니다.

나는 이것을 시도하고 완전히 오케스트레이션을 제거했다. 그러나 주요 라우팅/구독 오류가 있으며 추가 조사를 통해 요청 응답 포트가있는 경우에는이 작업을 수행 할 수없는 것으로 보입니다. 저기 일부 기사는 here입니다. 나는 거의 같은 문제가있다 this 사용자 않습니다.

결국 오케스트레이션을 사용하는지 여부는 중요하지 않습니다. 그러나 여러 개의 송신 포트에 메시지를 전달할 수있는 솔루션이 필요하며 메시지를 실제로 사용하는 사람이 하나뿐입니다. 오케스트레이션에 대한 다른 결정이나 하드 코드 결정을 수정하지 않고 포트를 쉽게 편집하고 추가 할 수 있도록하려면이 작업이 필요합니다.

답변

1

CBR 예제 모델이 실제로 작동한다는 것을 알게되었습니다. 라우팅 문제는 구독입니다. 요청 포트에 송신 포트를 등록하려면 BTS.ReceivePort 필터 대신 BTS.SPName (송신 포트 이름) 필터를 설정해야합니다. 이렇게하면 메시지가 올바르게 필터링됩니다. 당신은 대답도했지만, 피하려고했던 오케스트레이션을 사용해야합니다.

5

오케스트레이션의 송신 포트에서 Direct Binding을 사용하여 메시지 상자 db에 메시지를 다시 주입 할 수 있습니다. 여러 포트 그룹을 사용하여 각 포트 그룹은 원하는 메시지 유형을 직접 구독하고 승격 된 속성을 필터링 할 수 있습니다.

+0

방법으로 해결책을 찾았습니다. 오케스트레이션을 제거하고 두 번째 및 세 번째 포트에서 BTS.SPName을 정의한 필터를 넣습니다 (프로 시저 이름이 저장되었지만 이제는 포트 이름 전송). 라우팅 문제는 내가 완전히 구독하지 않았기 때문에 발생했습니다. – achinda99