2010-05-25 95 views
1

我们有一个运行我们的一些任务的HPC节点。我的.net项目中有一个任务,它会启动HPC节点上的bcp实用程序以及我已运行到9 Mb的查询的输出。BCP任务在执行时挂起

当HPC节点运行此任务时,查询的输出被转储到一个文件中,然后在转储大约5mb数据后,突然停止转储更多数据,并且这种情况一直发生。 (请注意,这不是任何数据问题,因为它每次都不会在特定行上崩溃)。这可能也可能不重要,但我将数据转储到具有足够权限的不同服务器中。

我已经直接在hpc节点和其他comps上使用相同的查询运行命令,并且它提供了正确的输出。

我运行bcp命令如下:

VAR processInfo =新的ProcessStartInfo( “的Bcp.exe”,参数) { RedirectStandardOutput =真, RedirectStandardError = TRUE, CreateNoWindow = TRUE, UseShellExecute = false };

 var proc = new Process { StartInfo = processInfo, EnableRaisingEvents = true }; 
     proc.Exited += new EventHandler(bcp_log); 
     proc.Start(); 
     proc.WaitForExit(); 

因此,我的代码实际上等待每个bcp任务运行,然后继续运行,因为我多次调用它。

仅供参考,以便再次提醒您,仅当我的o/p超过某个字节数(在此情况下约为5mb)时,它才会失败。

任何帮助,非常感谢。

P.S:我想补充bcp实用工具安装在所有的HPC节点

回答

2

嗨这里的问题是HPC节点无法bcp命令的输出重定向到标准输出。标准输出在这种情况下具有最小值,在我们的表中,当行数超过50000时,标准输出不再能够重定向到标准输出。在明确的时间间隔刷新标准输出,你仍然可以重定向到标准输出没有任何问题

+0

谢谢C.龙你的答案也有帮助。 – Baz1nga 2010-07-13 05:08:31