【问题标题】:TFS - Test Management Warehouse Sync - SQL TimeoutTFS - 测试管理仓库同步 - SQL 超时
【发布时间】:2014-09-05 01:31:57
【问题描述】:

自从我们升级 TFS 2013 - TFS 2013 更新 2 以来,我们的“测试管理仓库”无法同步。它会在 1 小时后引发 SQL 超时。

我们运行了大量的自动化测试,因此我们的测试管理仓库相当大。

Here is a thread to a microsoft issue 与“Build Warehouse Sync”有关 - 我的猜测是相同的问题,但是我们没有很多构建,但有大量的测试。

我已经尝试修复的事情:

  1. 运行完整的重建(删除仓库并重新开始)
    • 没有效果
  2. 重建了 tfs_defaultcollection 上的所有索引
    • 查询现在运行得更快,但对问题没有影响
  3. 将超时“WarehouseCommandSqlTimeout”从 1 小时增加到 3 小时
    • 1 小时后仍然失败,所以我猜测某处是否存在 1 小时的全局 SQL 连接超时??

作为目前的修补程序,我希望将 SQL 连接超时时间增加到 3 小时,看看是否有什么不同。有谁知道那个设置在哪里?

这是错误:

[Test Management Warehouse Sync]: ---> Microsoft.TeamFoundation.Warehouse.WarehouseException: TF221122: An error occurred running job Test Management Warehouse Sync for team project collection or Team Foundation server DefaultCollection. ---> Microsoft.TeamFoundation.Framework.Server.DatabaseOperationTimeoutException: TF246018: The database operation exceeded the timeout limit and has been cancelled. Verify that the parameters of the operation are correct. ---> System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. ---> System.ComponentModel.Win32Exception: The wait operation timed out --- End of inner exception stack trace --- at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.Execute(ExecuteType executeType, CommandBehavior behavior) --- End of inner exception stack trace --- at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.TranslateException(Int32 errorNumber, SqlException sqlException, SqlError sqlError) at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.TranslateException(SqlException sqlException) at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.MapException(SqlException ex, QueryExecutionState queryState) at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.HandleException(Exception exception) at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.Execute(ExecuteType executeType, CommandBehavior behavior) at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.ExecuteReader() at Microsoft.TeamFoundation.TestManagement.Warehouse.WarehouseResultDatabase.QueryTestPointData(SqlBinary watermark, Int32 limit, ProcessRowCallback deletedCallback, ProcessMappingDataCallback addedCallback, ResolveIdentities resolveIdentitiesCallBack) at Microsoft.TeamFoundation.TestManagement.Warehouse.TeamTestWarehouseAdapter.QueryForTestPoints(WarehouseResultDatabase wrd, SqlBinary waterMark, Int32 limit) at Microsoft.TeamFoundation.TestManagement.Warehouse.TeamTestWarehouseAdapter.ProcessIntegratedResults(WarehouseRowVersionQueryDelegate wqd, String highWaterMarkProperty, String processLimitProperty, Int32 defaultLimit) at Microsoft.TeamFoundation.TestManagement.Warehouse.TeamTestWarehouseAdapter.MakeDataChanges() at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension1.MakeDataChanges(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, String& resultMessage) at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension1.RunInternal(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String& resultMessage) at Microsoft.TeamFoundation.Warehouse.WarehouseJobExtension.Run(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String& resultMessage) --- End of inner exception stack trace ---

【问题讨论】:

    标签: sql-server tfs data-warehouse


    【解决方案1】:

    您可以通过更改 TFSJobAgent.exe.config 文件来更改作业代理的日志记录。可以在这里找到:-

    C:\Program Files\Microsoft Team Foundation Server 12.0\Application Tier\TFSJobAgent

     <system.diagnostics>
        <trace autoflush="false" indentsize="4">
          <!--To enable tracing to file, simply uncomment listeners section and set trace switch(es) below.
              Directory specified for TextWriterTraceListener output must exist, and job agent service account must have write permissions. -->
          <!--<listeners>
            <add name="myListener" 
              type="System.Diagnostics.TextWriterTraceListener" 
              initializeData="C:\Replace_Me_With_A_Directory_The_Service_Account_Can_Write_To\jobagent.log" />
            <remove name="Default" />
          </listeners>-->
        </trace>
        <switches>
          <!--  Trace Switches
                Each of the trace switches should be set to a value between 0 and 4, inclusive.
                  0: No trace output
                  1-4: Increasing levels of trace output; see Systems.Diagnostics.TraceLevel-->
          <add name="API" value="0" />
          <add name="Authentication" value="0" />
          <add name="Authorization" value="0" />
          <add name="Database" value="0" />
          <add name="General" value="0" />
          <add name="traceLevel" value="0" />
        </switches> 
       </system.diagnostics>
    

    这可能会为您提供更好的诊断方法来调查问题

    超时设置见http://msdn.microsoft.com/en-us/library/ff458305.aspx

    【讨论】:

      猜你喜欢
      • 2020-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-01
      • 2014-03-12
      • 1970-01-01
      • 2012-09-23
      • 1970-01-01
      相关资源
      最近更新 更多