减少BizTalk接收位置文件的输入速度

时间:2014-09-25 16:25:22

标签: biztalk biztalk-2010

我们有一个BizTalk 2010接收位置,它将获得一个70MB的文件,然后使用入站地图(在接收位置)和出站地图(在发送端口)生成1GB文件。

执行上述过程时,SQL Server中会消耗大量磁盘I / O资源。另一个接收位置处理性能受到很大影响。

我们已尝试减少该接收位置的主机实例中的最大磁盘I / O线程,但它仍占用SQL Server中的大量磁盘I / O资源。

实际上这个过程的优先级非常低。是否有任何方法可以减少此进程的磁盘I / O资源使用情况,以便其他进程可以正常运行?

2 个答案:

答案 0 :(得分:1)

此问题与文件输入的速度无关,但正如您在评论中提到的那样,当尝试将1gb地图输出持久保存到MessageBox时,它会在消息框上放置加载。您可以在此处选择一些选项,以尽量减少这对其他流程的影响:

  1. 将新创建的主机上的限制设置调整为非常低的值。这可能会或可能不会按您希望的方式工作。
  2. 在这些文件的接收位置设置服务窗口,以便它们仅在非工作时间运行。如果你没有对MessageBox有24/7的需求并且可以在半夜(比如说凌晨2-3点)有慢的响应时间,这将是理想的。
  3. 如果您的要求可以处理此问题,请不要将文件映射到接收端口,而是将其路由到Orchestration和/或自定义管道组件,该组件将其拆分为较小的块,然后映射较小的块。这应该至少可以让您对处理这些处理的速度进行更精细的控制(在处理碎片的循环中具有延迟形状)。当你把它们加在一起时,仍然可能会出现问题,但它不应该像你当前的过程一样糟糕。
  4. 也值得一看你的地图。如果有很多慢/处理器重的呼叫,你可以重构它。

答案 1 :(得分:0)

理想情况下,你应该取消该文件。在每个单独的段上应用包括映射的业务逻辑,然后一次将它们加载到一个sql中。稍后您可以使用管道或其他一些.NET组件从SQL中提取数据并重新分配数据。在BizTalk消息框中处理大xml(与平面文件相比大小为10倍)不是一个很好的做法。 但是,如果它是纯消息传递方案,则可以将文件转换为流并将其路由到目标。