TFS2013:构建仓库同步作业失败

TFS2013: Build Warehouse Sync Job Failed

我在 6 个集合中的 1 个集合中遇到跟随失败错误。其他 5 个集合正在执行此工作而没有失败。我尝试使用 WarehouseControlWebService 手动 运行 它,但它不起作用。有关解决此问题的任何帮助。我知道 SQL 端正在工作,因为其他端 运行 没有出错。

作业 JobProcessingStatus="Idle" 名称="Build Warehouse Sync"

上次运行结果="Failed" EndTimeUtc="2016-05-26T01:13:03.253Z" ExecutionStartTimeUtc="2016-05-26T00:52:57.857Z" QueueTimeUtc="2016-05-26T00: 52:57.603Z

[Build Warehouse Sync]:---> Microsoft.TeamFoundation.Warehouse.WarehouseException:TF221122:发生错误运行正在为团队项目集合或 Team Foundation 服务器 Collection2 构建仓库同步作业。 ---> System.OutOfMemoryException:抛出 'System.OutOfMemoryException' 类型的异常。在 System.Text.StringBuilder.ToString() 在 Microsoft.TeamFoundation.Warehouse.WarehouseBatchedDataAccessComponent.FormatFactEntriesXml(事实事实,IEnumerable1 entries) at Microsoft.TeamFoundation.Warehouse.WarehouseBatchedDataAccessComponent.SaveFactEntries(Fact fact, IEnumerable1 项,布尔值允许更新)在 Microsoft.TeamFoundation.Build.Adapter.WarehouseEntry.SaveFactEntries(WarehouseBatchedDataAccessComponent dac,WarehouseConfig 配置,IEnumerable1 entries, Boolean allowUpdate) at Microsoft.TeamFoundation.Build.Adapter.BuildBatch.SaveBatch() at Microsoft.TeamFoundation.Build.Adapter.TeamBuildWarehouseAdapter.ProcessAndUploadBuildData() at Microsoft.TeamFoundation.Build.Adapter.TeamBuildWarehouseAdapter.MakeDataChanges() at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension1.MakeDataChanges(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, String& resultMessage) 在 Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension`1.RunInternal(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String& resultMessage) 在 Microsoft.TeamFoundation.Warehouse.WarehouseJobExtension.Run(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String& resultMessage) --- 内部异常堆栈跟踪结束 ---

您可以尝试rebuild the TFS data warehouse and cube看看问题是否仍然存在。请注意,根据数据仓库中的数据量,重建操作可能需要几个小时才能完成,在此期间报告不可用。

在 Microsoft 的帮助下,我们不得不修改作业的批量大小。下面是我所做的笔记。调整几次大小并允许它运行后它被清除了。

在配置数据库中使用此查询来确定要修改的集合数据库的 HostID

Select *

来自 tbl_ServiceHost

样本:

hostid 名称 185C91E1-2EB5-4C9C-AE97-26B757DE951B 测试未生成 AD455D2B-7A84-4BF6-A8F2-594895066472 DefaultCollection 8F2ECA36-47BE-4244-B4C7-E2AABC7693FE 团队基金会 8D9C0BCE-19AB-425B-8D27-ECDE6573A493 新

所以要使用 DefaultCollection,我们需要 HostId:AD455D2B-7A84-4BF6-A8F2-594895066472

将 HostID 输入到仓库数据库中 运行 的插入查询中:

插入[_属性包] ( [Property_Scope], [Property_Key], [Property_Value] ) 价值观 ( ' AD455D2B-7A84-4BF6-A8F2-594895066472', -- 来自 tbl_ServiceHost 的主机 ID '/Adapter/Config/TeamBuild/BatchSize', -- 属性 to Update, 这是Build Warehouse Sync的关键 '100' -- 新批量大小(默认 2000)
)

我们想把它降低到一个非常小的数字,然后让它达到 运行 并确保它 运行 成功,如果没有,我们可以将它降低到 1 并尝试,如果是这样,如果您想提高处理速度,我们可以(由您自行决定)将其移回原位。

最好停止所有仓库同步作业和 运行 有问题的第 1 个作业。它需要时间来解决问题。确保数据库由 TFS_Warehouse.

创建

这用于修复以下错误:

构建仓库同步:---> Microsoft.TeamFoundation.Warehouse.WarehouseException:TF221122:发生错误运行正在为团队项目集合或团队基础服务器 AS 构建仓库同步作业。 ---> System.OutOfMemoryException:抛出类型 'System.OutOfMemoryException' 的异常。在 System.Text.StringBuilder.ToString() 在 Microsoft.TeamFoundation.Warehouse.WarehouseBatchedDataAccessComponent.FormatFactEntriesXml(事实事实,IEnumerable1 entries) at Microsoft.TeamFoundation.Warehouse.WarehouseBatchedDataAccessComponent.SaveFactEntries(Fact fact, IEnumerable1 项,布尔值允许更新)在 Microsoft.TeamFoundation.Build.Adapter.WarehouseEntry.SaveFactEntries(WarehouseBatchedDataAccessComponent dac,WarehouseConfig 配置,IEnumerable1 entries, Boolean allowUpdate) at Microsoft.TeamFoundation.Build.Adapter.BuildBatch.SaveBatch() at Microsoft.TeamFoundation.Build.Adapter.TeamBuildWarehouseAdapter.ProcessAndUploadBuildData() at Microsoft.TeamFoundation.Build.Adapter.TeamBuildWarehouseAdapter.MakeDataChanges() at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension1.MakeDataChanges(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, String& resultMessage) 在 Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension`1.RunInternal(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String& resultMessage) 在 Microsoft.TeamFoundation.Warehouse.WarehouseJobExtension.Run(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String& resultMessage) — 内部异常堆栈跟踪结束 ---