【问题标题】:BizTalk receive pipeline failing due to disk spaceBizTalk 接收管道由于磁盘空间而失败
【发布时间】:2013-05-06 23:21:22
【问题描述】:

我正在对 BizTalk 2010 安装进行一些性能测试,其中一项测试涉及消耗数 GB 的文件。我收到了一个非常简单的错误,但它缺少一些关键信息,而且我目前无法根据文档找到它。

错误是接收管道失败; “原因:磁盘空间不足。”

嗯。哪个盘?它可能是安装 windows 的分区、安装 BizTalk 的分区、数据库服务器等。它们似乎都有足够的空间来容纳文件,但是当它转换为 XML 时,它会变得更大,所以它可能是其中任何一个。

我正在寻找有关追踪问题根源的建议,以便我可以恢复并运行我的测试。

【问题讨论】:

  • 我发现文件中存在验证错误;应用程序事件日志充满了它们。我还注意到运行文件适配器的服务器上的临时文件很大(12+GB)。不确定这是否与错误有关,或者只是我尝试处理的文件大小的症状。 . .

标签: windows-server-2008 biztalk biztalk-2010


【解决方案1】:

可能是您的临时文件夹导致您的磁盘已满。 当处理大文件时(尤其是在映射或反汇编程序中),虚拟流会将部分消息写入磁盘,以便以流方式工作并防止内存泄漏。
将临时文件夹(%temp% 变量)移动到另一个磁盘而不是 c:\ 驱动器是最佳实践(尤其是在生产环境中)。这是 BizTalk 存储所有大型消息片段的地方。

来自 MSDN 帮助:

默认情况下,映射期间缓冲到文件系统的文档将写入 BizTalk Server 计算机的 %temp% 目录。将 %temp% 环境变量的设置更改为非系统磁盘,以提高映射期间将大型消息缓冲到文件系统时的性能。

更多信息可以在这里找到:http://msdn.microsoft.com/en-us/library/aa560481.aspx

【讨论】:

    【解决方案2】:

    如果错误提示磁盘已满,则很可能是因为 sql server 磁盘空间不足。

    但是,由于您提到文件大小超过千兆字节,因此错误可能是因为 BizTalk 服务器的虚拟磁盘空间不足。这可能是因为您使用的接收管道使用 XmlDocument 类。 XmlDocument 类在内存空间方面效率很低,因为它通常占用的内存大约是文件大小的 10 倍。因此,如果您有大约 1 GB 的 xml 文件,使用 XmlDocument 将占用大约 10 GB 的 RAM。

    由于您提到文件大小范围为 12GB+,除非您有数百 GB 的内存,否则 BizTalk 服务器很可能会耗尽 RAM 内存。发生这种情况时,Windows 操作系统的默认设置是将 RAM 中的多余数据存储到称为虚拟磁盘空间的硬盘中。机器似乎也耗尽了磁盘空间 - 这可能解释了您遇到的错误。

    要确定您是否确实内存不足,然后是虚拟硬盘空间不足,您可能需要分析 biztalk 服务器计算机的虚拟磁盘空间和/或内存使用情况。根据该调查,您在解决问题方面有几种选择,

    • 同时增加 RAM 和硬盘空间 - 这可能是一种无需任何代码和/或设计/架构重构即可快速简便地实现所需性能的方法。
    • 拆分文件大小 - 如果可能,将文件大小拆分为更小的文件。
    • 使用自定义管道和管道组件 - 您可能需要调查

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-14
      • 1970-01-01
      • 2023-01-19
      • 1970-01-01
      • 2012-02-15
      • 2013-11-25
      • 1970-01-01
      • 2011-06-16
      相关资源
      最近更新 更多