0

我有一个从数据库轮询数据的编排(它实际上由 ERP 使用,因此我无法操作该数据库中的数据),一旦轮询端口找到匹配的数据,它就会执行编排并将数据发送给第三方网络服务。

此编排中使用的逻辑很复杂,并且经常容易更改,因此用适当的测试集覆盖它很重要。我考虑了一段时间,甚至想过使用 3 个不同的组件,这样,

  1. 第一部分(只能是2个端口)从数据库中读取数据并放入文件夹

  2. 第二个(当前编排)使用文件端口读取数据并由第一个组件转储,并将结果文件转储到另一个文件夹

  3. 第三个组件读取第二个组件转储的文件并将其发送到 Web 服务

不过我有几个顾虑,

  1. 对于 BizTalk,这是一种不受欢迎的做法吗?或者这是一种正常的做事方式?

  2. 性能 - 与当前解决方案相比,它会显着变慢吗?

  3. 我们目前正在使用其中一台服务器来运行测试/使用 BTDF 和 Jenkins 进行构建。有没有办法禁用组件 1 和 3,运行测试并在构建完成后重新启用它们,以便它可以正常运行?

4

2 回答 2

2

通过使用 MessageBox 的内置功能,您可以避免写入和读取文件的开销。第一个开始的地方在这里:https ://msdn.microsoft.com/en-us/library/aa949234.aspx

有一个出色的 Biztalk 示例,它展示了如何使用这种方法将您的功能模块化为一组独立地读取和写入 MessageBox 的编排。它在上一页的底部被引用,称为“直接绑定到编排中的 MessageBox 数据库”。

于 2015-02-05T08:29:38.640 回答
1

我建议不要使用这种方法。您最好将三个编排直接绑定到 MessageBox 并订阅上一个编排发布的消息。您还可以创建订阅这些消息的发送端口,或者只使用管理控制台来调试这些消息。

您还可以为各种任务编写单元测试。如果您在 .NET 帮助程序库中做一些工作,您可以拥有一个普通的旧单元测试项目。您可能还想研究 BizUnit 框架 ( https://bizunit.codeplex.com/ ) - 需要花点时间才能习惯,但它是编写 BizTalk 单元测试的绝佳资源。

于 2015-02-04T16:23:44.030 回答