gpt4 book ai didi

c# - BCP 任务在执行时挂起

转载 作者:太空宇宙 更新时间:2023-11-03 22:21:31 28 4
gpt4 key购买 nike

我们有一个 HPC 节点,可以在其中运行我们的一些任务。我在我的 .net 项目中有一个任务,它在 HPC 节点上启动 bcp 实用程序,我运行的查询输出为 9 Mb。

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

我直接在 hpc 节点和其他 comps 上运行了具有相同查询的命令,它给出了正确的输出。

我正在运行 bcp 命令如下:

var processInfo = new ProcessStartInfo("bcp.exe", 参数) { 重定向标准输出 = 真, 重定向标准错误 = 真, 创建无窗口 = 真, 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 节点上

最佳答案

如果将 RedirectStandardOutput=true 更改为 RedirectStandardOutput=false 是否仍然挂起?

如果上述更改避免了挂起,您可能会遇到死锁情况,这种情况在尝试通过 .NET Process 类重定向 stdout 和 stderr 流时可能会发生。下面的 MSDN 文章对此进行了更详细的解释,并提供了示例代码以异步读取 stderr 并避免死锁情况。

http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandarderror.aspx

关于c# - BCP 任务在执行时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2908879/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com