powershell 避免SSRS报告部署期间的死锁

c2e8gylq  于 2022-11-10  发布在  Shell
关注(0)|答案(1)|浏览(164)

我想知道有没有人对同样的情况有什么建议或经验。
我们有一台服务器,用于我们的SSRS报告。我们部署到SSR中的多个文件夹,即Site_1、Site_2、Site_3...站点_26
我们在每个站点部署了大约800多个报告。这些报告对于Site_1到Site_26是相同的(除非我们跳过站点)。
我们使用Azure DevOps和PowerShell ReportingServicesTools来部署报告。
发生的情况是,当我们开始部署时,会有几个站点因死锁而失败,并出现以下错误:

报表和进程ID是随机的,永远不会相同

[错误]无法创建项Report.rdl:无法创建目录项C:\azagent\A9_Work\r5\a\SSRS Reports\Reports\Report.rdl:调用具有“7”参数的“CreateCatalogItem”时出现异常:“System.Web.Services.Protocols.SoapException:报表服务器数据库内发生错误。”这可能是由于数据库中的连接故障、超时或磁盘不足造成的。->Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerStorageException:报表服务器数据库内出错。这可能是由于数据库中的连接故障、超时或磁盘不足造成的。->**System.Data.SqlClient.SqlException:事务(进程ID 100)在与另一个进程的锁资源上死锁,并已被选为死锁牺牲品。**重新运行该事务。

该错误与低磁盘等无关,因为我们已经对此进行了彻底的测试,并且它发生在一个怪物服务器上的两个站点上。错误是事务死锁。
成功部署报表的唯一方法是一个接一个地并发部署它们。但是,由于时间限制和业务需求,这不是一种选择。
我们已经执行了所有PSSDigs等操作,并发现错误是由于存储过程“FindObjectsNonRecursive”
我们几乎通过添加(NoLock)选项解决了这个问题,但这似乎只是暂时的,我们又回到了原来的状态。微软还表示,他们不会改变这一规定。还指出,18个月过去了,微软仍然无法为我们的问题提供解决方案。
如果你有这个问题,我将非常感谢任何人对你如何克服这个问题的反馈。
谢谢您抽时间见我。

8aqjt8rx

8aqjt8rx1#

如果你有这个问题,我将非常感谢任何人对你如何克服这个问题的反馈。
您是否像错误提示的那样尝试重试?死锁是依赖于时间的,因此它最终应该会成功。

相关问题