代码之家  ›  专栏  ›  技术社区  ›  Dmitry Tashkinov

在运行时确定BizTalk应用程序中的消息目标集

  •  1
  • Dmitry Tashkinov  · 技术社区  · 14 年前

    为了简单起见,有一个消息源,比如说,一个目录,用户在其中添加文件以发布它们。有几个订阅者,每个订阅者都有一个目录来接收发布的文件。订阅者的数量在程序开发过程中可能会有所不同。还有一些规则根据文件名确定特定订阅者是否需要接收特定文件。例如,每个订阅服务器都有一个文件名模式或掩码,它们接收的文件必须与之匹配。这些规则(例如,模式)也可以随着时间的推移而改变。

    我不知道怎么做。在运行时为每个目标创建一组发送端口?有可能吗?使用一个端口更改其绑定?它是否能正确处理并发发送?还有别的办法吗?

    我意识到我的问题可能是模糊的和普遍的,我更喜欢一个答案而不是另一个答案。所以我给他们投了更高的票。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Christian Loris    14 年前

    如果对目的地的更改将是频繁的,那么您寻求更动态的解决方案是正确的。一个很好的解决方案是使用动态发送端口和业务规则引擎。为正在接收的邮件创建规则集。这可以基于消息中的目标属性或客户ID。使用这些事实,规则引擎可以返回一系列信息,如文件掩码、服务器名称、deleiver服务器的ip地址等。然后可以使用这些信息配置编排中的动态发送。这里真正的好处是,您可以在规则引擎中更新规则集,而无需重新部署整个解决方案。作为一个新手,这些都是一些先进的概念,但并不像你想象的那么复杂。

    对于一个更简单的解决方案,您可能希望通过文件的属性模式(即文件名、目录等)来设置文件发送适配器属性。您可以从一个数据库中提取这些值,该数据库在一个expresison形状中有一个helper类。在每个消息ogig out上,使用shcema属性设置消息的发送位置和名称。这样,您只需在情况发生变化时更新数据库。

    祝你好运!

        2
  •  2
  •   dariom    14 年前

    如果您的订户是真正动态的,您可以考虑使用动态发送端口来实现这一点。这会带来一些复杂性,因为您需要使用业务流程根据规则配置发送端口的属性。

    推荐文章