我正在对BizTalk 2010安装进行一些性能测试,其中一个测试涉及使用一个多GB的文件。我收到一个非常简单的错误,但它缺少一些关键信息,到目前为止我无法根据文档解决这个问题。
错误是接收管道失败; “原因:磁盘上没有足够的空间。”
嗯。哪个磁盘?它可能是安装Windows的分区,安装BizTalk的分区,数据库服务器等。它们似乎都有足够的空间容纳文件,但随着它转换为XML,它会变得更大,所以它可能是其中任何一个。
我正在寻找有关追踪问题根源的建议,以便我可以重新启动并运行测试。
答案 0 :(得分:4)
这可能是你的临时文件夹导致你的磁盘运行满了。
当处理大型文件时(特别是在映射或反汇编程序中),虚拟流会将部分消息写入磁盘,以便以流式方式工作并防止内存泄漏。
将临时文件夹(%temp%变量)移动到除c:\驱动器之外的另一个磁盘是最佳实践(特别是在生产环境中)。这是BizTalk存储所有大型消息片段的地方。
来自MSDN帮助:
默认情况下,映射期间缓冲到文件系统的文档将写入BizTalk Server计算机的%temp%目录。将%temp%环境变量的设置更改为非系统磁盘,以在映射期间将大型消息缓冲到文件系统时提高性能。
可在此处找到更多信息:http://msdn.microsoft.com/en-us/library/aa560481.aspx
答案 1 :(得分:1)
如果错误显示磁盘已满,则很可能是因为sql server磁盘空间不足。
但是,由于您提到文件大小超过千兆字节大小,因此错误可能是因为BizTalk服务器的虚拟磁盘空间不足。这可能是因为您使用的接收管道使用XmlDocument类。 XmlDocument类在内存空间方面非常无效,因为它通常占用文件大小的内存的大约10倍。因此,如果你有大约1 GB的xml文件,使用XmlDocument将占用大约10 GB的RAM。
由于您提到的文件大小范围为12GB +,因此除非您有数百GB的内存,否则很可能BizTalk服务器的RAM内存不足。发生这种情况时,Windows操作系统的默认设置是将多余的数据从RAM存储到称为虚拟磁盘空间的硬盘中。似乎机器也没有磁盘空间 - 这可能解释了你得到的错误。
为了确定您的内存是否确实耗尽然后是虚拟硬盘空间,您可能需要为biztalk服务器计算机配置虚拟磁盘空间和/或内存使用情况。根据调查结果,您在获得解决方案方面有一些选择,