データ ウェアハウスのトラブルシューティング
更新 : 2007 年 11 月
ここでは、Team Foundation Server データ ウェアハウスの操作時に発生する可能性のある一般的な問題について説明します。
運営ストアからデータ ウェアハウスへのデータ フローが停止する
レポートのデータが古くて更新されていない
これらのヒントや各エラー メッセージの個々のヘルプ トピックのヒントを確認しても問題を解決できない場合は、Microsoft Web サイトの Visual Studio Team System フォーラムを参照してください。これらのフォーラムは、トラブルシューティングに関するさまざまなトピックの情報を検索できるスレッドを提供するだけでなく、質問にすばやく回答できるように監視されています。
運営ストアからデータ ウェアハウスへのデータ フローが停止する
運営ストアからデータ ウェアハウスへのデータ フローが停止した疑いがある場合は、次の方法でトラブルシューティングを実施できます。
データ フローが実際に停止したことを確認します。
障害が発生したアダプタを特定します。
問題を解決するには、次の手順が役立ちます。
データ フローが停止したことを確認するには
次のうち、必要な変更を行います。
変更したファイルをソース管理にチェックインする。
作業項目を更新する。
テスト結果を発行する。
[スタート] をクリックし、[すべてのプログラム] をポイントします。次に、[Microsoft SQL Server 2005] をポイントし、[SQL Server Management Studio] をクリックします。
[サーバーに接続] ダイアログ ボックスで、[サーバーの種類] ボックスの一覧の [データベース エンジン] をクリックし、[接続] をクリックします。
[Microsoft SQL Server Management Studio] で、[新しいクエリ] をクリックします。
次のクエリを実行して、適切なテーブルに変更が表示されることを確認します。
select * from [work item] where id = [select max[id] from [work item] ]
変更が表示されない場合は、データ フローが停止しています。
障害が発生したアダプタを特定するには
テキスト エディタで、\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\Warehouse\Web.Config を開きます。
<add name="General" value="0" /> という行の "0" を "3" に置き換え、変更を保存します。
この変更によって、デバッグ メッセージが有効になります。
Team Foundation Server のアプリケーション層コンピュータで、[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
[名前] ボックスに「inetmgr」と入力します。
[インターネット インフォメーション サービス マネージャ] の左ペインで、[Team Foundation Server] ノードをクリックします。
[操作] メニューの [開く] をクリックします。
システム トレース イベントを待機するプログラムを使用して、アプリケーション層のトレースを開始します。
.NET のトレース機能を使用した、トレースとデバッグの機能を持つフリーウェア プログラムは多数あります。また、この機能を持つカスタム アプリケーションを作成することもできます。トレース機能とデバッグ機能の使用方法の詳細については、Microsoft Web サイトの「トレース リスナ」を参照してください。
[キャプチャ] メニューで、すべてのキャプチャ コマンドを選択します。このプログラムを開いたままで、すべてのデバッグ表示メッセージを確認します。
[インターネット インフォメーション サービス マネージャ] の左ペインで、[ウェアハウス] ノードを展開し、[v1.0] ノードをクリックします。
右ペインで、[warehousecontrolled.asmx] をクリックします。
[操作] メニューの [参照] をクリックします。
[ControllerService] で、[Run] をクリックし、[起動] をクリックします。
手順 7. で使用したトレース監視アプリケーションを使用してログを見直し、正常に動作していないアダプタを示すトレース例外がないかどうか確認します。
レポートのデータが古くて更新されていない
1 つまたは複数のレポートのデータが古く、更新されていないと思われる場合、または "レポートの処理中にエラーが発生しました。(rsProcessingAborted)" というエラー メッセージが表示される場合は、データ ウェアハウスの自動更新に問題が生じている可能性があります。
運営ストアのデータ (作業項目トラッキング、バージョン管理、ビルド、および統合サービス) は、リレーショナル データベース (TfsWarehouse) に取り込まれた後、一定間隔で OLAP キューブに取り込まれます。レポートは、キューブをクエリすることによって表示されます。既定では、Visual Studio Team Foundation Server Scheduler という名前の Windows サービスにより、ウェアハウス Web サービスが 1 時間ごとに呼び出され、ウェアハウスの処理が開始されます。この処理がバックグラウンドで継続されている間は、キューブとレポートを使用できます。
トラブルシューティングを開始するには、アプリケーション層およびデータ層の管理者セキュリティ グループのメンバである必要があります。データベースとキューブはデータ層に配置されているのに対し、Reporting Services サイトとレポートはアプリケーション層に配置されています。
この問題のトラブルシューティングは、次の手順で行うことができます。
アプリケーション層で、Internet Explorer のエラーの簡易表示をオフにして、すべてのメッセージを確認できるようにします。
Visual Studio Team Foundation Server Scheduler という名前の Windows サービスが実行中であることを確認します。
Visual Studio Team Foundation Server Task Scheduler サービスは、ウェアハウス Web サービスに通知して、データを集約してキューブを処理するように要求します。データはすべての運営システムから集められ、TfsWarehouse データベースに取り込まれます。そこからデータが処理され、キューブが生成されます。
ウェアハウスに取り込まれたデータの処理を確認します。
ウェアハウスを手動で処理します。
レポートを参照します。
問題を解決するには、次の手順が役立ちます。
Internet Explorer のエラーの簡易表示をオフにするには
アプリケーション層で、Internet Explorer を起動します。
[ツール] メニューの [インターネット オプション] をクリックします。
[インターネット オプション] ダイアログ ボックスの [詳細設定] タブをクリックします。
[HTTP エラー メッセージを簡易表示する] チェック ボックスをオフにします。
Visual Studio Team Foundation Server Task Scheduler サービスが実行中であることを確認するには
データ層で、[スタート] ボタンをクリックし、[管理ツール] をポイントします。次に、[サービス] をクリックします。
[サービス] ウィンドウで、[Visual Studio Team Foundation Server Scheduler] までスクロールし、[状態] 列に [開始] が表示されていることを確認します。
サービスが開始していない場合は、[Visual Studio Team Foundation Server Scheduler] を右クリックし、[開始] をクリックします。
%ProgramFiles%\Microsoft Visual Studio 2008 Team Foundation Server\TfsServerScheduler を参照して、いつスケジューラがウェアハウスを最後に呼び出して処理したかを確認します。
このディレクトリの XML ファイルには、ウェアハウスの処理が最後に行われた日時が記録されています。
ウェアハウスに取り込まれたデータの処理を確認するには
[スタート] をクリックし、[すべてのプログラム] をポイントします。次に、[Microsoft SQL Server 2005] をポイントし、[SQL Server Management Studio] をクリックします。
[サーバーに接続] ダイアログ ボックスで、[サーバーの種類] ボックスの一覧の [データベース エンジン] をクリックし、[接続] をクリックします。
[Microsoft SQL Server Management Studio] で、[新しいクエリ] をクリックします。
次のクエリを実行して、データ キューブに取り込まれたデータの量を確認します。
use TfsWarehouse select Setting as [Last Cube Processing] from _WarehouseConfig where ID = 'LastProcessedTime' -- total revisions in the relational warehouse use TfsWarehouse select top 1 LastUpdatedTime as [LastVCWHWrite] from dbo.[Code Churn] with (nolock) order by LastUpdatedTime desc select top 1 LastUpdatedTime as [LastWITWHWrite] from dbo.[Work Item History] with (nolock) order by LastUpdatedTime desc use TfsWarehouse select count(*) as [WH Revisions] from [dbo].[Work Item History] with (nolock) where [Record Count] <> -1 use TfsWorkitemTracking select count(*) as [WIT Revisions] from [dbo].[WorkitemsLatestAndWere] with (nolock) use TfsWarehouse select max ([Changeset ID]) as [WH Changeset] from [dbo].Changeset with (nolock) where DimensionMemberActive = 1 use TfsVersionControl select max(ChangeSetId) as [VC Changeset] from tbl_Changeset with (nolock) -- identities use TfsWarehouse select Property_Value as [Warehouse Identity Id] from _PropertyBag where Property_Key = 'CSS Identity Sequence Id' use TfsIntegration select max(sequence_Id) as [Integration Identity Id] from tbl_security_identity_cache -- structure use TfsWarehouse select Property_Value as [Warehouse Structure Id] from _PropertyBag where Property_Key = 'CSS Structure Sequence Id' use TfsIntegration select max(sequence_Id) as [Integration Structure Id] from tbl_nodes with (nolock)
データがない場合、または表示されないデータが大量にある場合は、スケジューラが処理を通知していないか、またはウェアハウスによるデータの集約に問題があります。
ウェアハウスを手動で処理するには
アプリケーション層にログオンします。
https://localhost:8080/Warehouse/v1.0/warehousecontroller.asmx を開きます。
[GetWarehouseStatus] をクリックし、[起動] をクリックします。
サービスがアイドルになるまで待機します。通常、サービスは、ProcessingAdapters (スキーマ変更)、ProcessingOlap (スキーマ変更)、ProcessingAdapters (データ取り込み)、ProcessingOlap (キューブ処理) を返した後にアイドルになります。
https://localhost:8080/Warehouse/v1.0/warehousecontroller.asmx を開きます。
[Run] をクリックし、[起動] をクリックします。
ウェアハウスの処理が開始されます。処理が開始されたかどうかに応じて、サービスから True または False が返されます (非同期)。
処理を監視するには、手順 3. を繰り返します。
検証を行うには、手順 2. を繰り返して、移動されたデータの妥当性を確認します。問題がある場合は、次のセクションの「エラー データを収集するには」の手順を参照して、処理の時間の範囲を確認します。
レポートを開くには
チーム エクスプローラで、[レポート] ノードを展開し、個々のチーム レポートを参照します。
各レポートには、ウェアハウスが最後に処理された日時が次の形式で示されています。
生成されたレポート: yyyy/mm/dd hh:mm:ss 生成者: domain\user; ウェアハウスの最終更新時間: yyyy/mm/dd hh:mm:ss
通常、このデータは、作成されてから 1 時間未満の最新のデータです。
データが 1 時間以上前に作成されている場合は、次の手順でレポートのキャッシュを無効にします。
Internet Explorer で、http://<server>/Reports/ を開きます。
レポート マネージャで、チーム プロジェクト名をクリックし、レポートをクリックします。
[プロパティ] タブをクリックし、[実行] をクリックします。
[このレポートの一時コピーをキャッシュしない] を選択し、[適用] をクリックします。
[表示] タブをクリックし、レポートを表示します。
エラー データを収集するには
アプリケーション イベント ログを参照し、ソースが "Warehouse" であるエラー (エラーには赤い X 印が付いています) があるかどうかを確認します。このイベント ログのエラーおよびエラー スタックを利用すると、問題の特定に役立ちます。
すべての手順でエラーが発生している場合は、サポート担当者や製品チームのメンバが問題を診断するときに役立つトレースを収集します。
DBMON などのツールを使用してデバッグ出力を取り込みます。
テキスト エディタで、\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\Warehouse\Web.Config を開きます。
<add name="General" value="0" /> という行の "0" を "4" に置き換え、変更を保存します。
参照
処理手順
Team Foundation のレポート作成に関するトラブルシューティング