0

同じビルドマシンで実行されている単一のコントローラーと2つのエージェントを使用したTFS2010セットアップがあります。昨日、ビルドサーバーは2つの同時ビルドの実行を停止し、1つのエージェントに作業を任せました。コントローラとエージェントを再起動しようとしましたが、ロックされていません。パターンはなく、両方のエージェントが作業を行っています。一度に1つだけです。今日(同じマシンで)新しいエージェントを追加しましたが、2つの同時ビルドを取得できるようになりました。それでも1つの遅延エージェントがあります。何かご意見は?

新しい情報:2つの実行中のビルドと2つのキュー(合計3つのエージェントを持つNB)があり、優先度を高に変更すると、最後のエージェントでビルドが開始されます!?

4

3 に答える 3

2

わかりました - TFS データベースの tbl_BuildQueue の無効なエントリが原因でした。 通常の優先度のビルドは TFS 2010 でビルドされない

簡単な修正は、存在しない DefinitionId を持つ tbl_BuildQueue 内のエントリを削除することです。

SELECT * FROM [Tfs_Default].[dbo].[tbl_BuildQueue] where DefinitionId not in (select DefinitionId from tbl_BuildDefinition)
于 2012-02-17T10:09:57.270 に答える
0

確認できることがいくつかあります。

  • エージェント タグまたはエージェント名フィルターを使用するように構成されたビルド定義はありますか?
  • タグで構成されたエージェントはありますか? TF 管理コンソールで確認できます。
  • Visual Studio の [ビルド] -> [ビルド コントローラーの管理...] を使用して、各エージェントのステータスを確認します。
  • エージェントの TF 管理コンソールを使用して、各エージェントのステータスを確認します。
  • TF 管理コンソールは、過去 24 時間のイベントを報告していますか?
于 2012-02-17T09:22:08.073 に答える
0

現在、実行されていないビルドにエージェントが孤立したままになる可能性がある問題を解決するために、お客様と協力しています。これは、ストアド プロシージャの競合状態が原因で発生し、外部キー関係の欠落とは関係ありません。

これが実際に発生したことを確認するには、プロジェクト コレクション データベースに対して次のクエリを実行します。

   SELECT  * 
   FROM    tbl_BuildAgent ba 
   LEFT JOIN tbl_BuildAgentReservation bar 
   ON      bar.ReservationId = ba.ReservationId 
   WHERE   ba.ReservationId IS NOT NULL 
           AND bar.ReservationId IS NULL

これにより行が返された場合は、影響を受けるビルド エージェントの 'ReservationId' 列を NULL に戻すことで、問題を一時的に修正できます。この列を更新すると、更新後にキューに入れられた新しいビルドは、以前は「怠惰」だったエージェントを利用できるようになります。

パトリック

于 2012-02-17T14:14:40.160 に答える