使用.NET SQLConnection类的PowerShell脚本相互干扰

时间:2018-12-14 14:46:07

标签: powershell powershell-v4.0

我运行单个PowerShell脚本的多个实例,该脚本监视共享文件夹中的新JSON文件,然后将这些JSON文件上传到Azure SQL数据库以转换为表格数据。我运行脚本的多个实例,因此可以有冗余和更多的带宽来上传文件,因为共享文件夹中通常需要上传几十个JSON文件。

我的问题是,有时脚本的一个实例将开始运行ExecuteNonQuery()类中的System.Data.SqlClient.SqlCommand方法,并且该脚本只是挂起。这通常只会导致脚本的一个实例挂起,但有时会冻结正在运行的脚本的一个或多个其他实例。关闭有问题的实例后,其他所有内容将再次正常运行。

昨天我还注意到,一个完全不相关的PowerShell脚本(它也使用System.Data.SqlClient.SqlCommand类)在另一个脚本挂起时启动,并且也冻结了,直到关闭第一个脚本窗口。

我的问题是,如何调查和解决此问题?我假设PowerShell以某种方式在脚本之间共享资源,如果一个脚本锁定了这些资源,那么所有其他脚本都不走运。有没有解决的办法,或者在发生这种情况时可以使用的编程最佳实践?

0 个答案:

没有答案