2

所以我的解决方案需要的模型如下:

我需要轮询数据库并根据结果创建对数据库的请求以获取更多数据,获取响应并将其传递给一组端口,基于提升的属性,只有一个端口会起作用。

它看起来像这样:

但是,如果您将“Temp Out”分配给发送端口组,则消息将发送到组中的所有端口,而与每个端口上设置的过滤器无关。据我了解,这是预期的行为(阅读此处)。

所以我探索了其他选项,例如在 SDK 中使用基于内容的路由(CBR 示例)。你可以在这里查看

我尝试了这个并完全删除了编排(它真的不需要)。但是,存在重大的路由/订阅错误,经过进一步研究,如果您有请求响应端口,您似乎无法做到这一点。这里有一些关于此的文章。我几乎有这个用户的相同问题。

最后,我是否使用编排对我来说并不重要。但是,我需要一种解决方案,在该解决方案中,我可以将消息传递到多个发送端口,并且我只能让一个实际使用消息并发送。这是必要的,这样我就可以轻松地编辑和添加端口,而无需在编排中修改任何其他内容或硬代码决策。

4

2 回答 2

5

您可以在编排的发送端口上使用直接绑定将消息注入回消息框数据库。使用多个端口组,每个端口组可以直接订阅所需的消息类型并过滤提升的属性。

于 2009-03-06T13:27:04.087 回答
1

我发现 CBR 示例模型确实有效。路由的问题在于订阅。如果我要将发送端口订阅到请求响应端口,我必须设置 BTS.SPName(发送端口名称)过滤器而不是 BTS.ReceivePort 过滤器。通过这样做,消息被正确过滤。你的答案也可以,但它需要使用我试图避免的编排。

于 2009-03-10T12:47:04.040 回答