Problembehandlung für Data Warehouse
Aktualisiert: November 2007
In diesem Thema werden häufig auftretende Probleme aufgeführt, die beim Arbeiten mit dem Team Foundation Server-Data Warehouse auftreten können.
Der Datenfluss vom Betriebsspeicher zum Data Warehouse ist unterbrochen.
Daten in einem Bericht sind veraltet und werden offenbar nicht aktualisiert
Wenn Sie ein Problem auch nach dem Lesen dieser Tipps sowie der Tipps im Hilfethema der jeweiligen Fehlermeldung nicht beheben können, können Sie die Foren für Visual Studio Team System auf der Microsoft-Website durchsuchen. In diesen Foren finden Sie Threads, die Sie nach Informationen zu zahlreichen Aspekten der Problembehandlung durchsuchen können. Die Foren werden betreut, damit Ihre Fragen schnell beantworten werden können.
Der Datenfluss vom Betriebsspeicher zum Data Warehouse ist unterbrochen
Wenn Sie den Verdacht haben, dass keine Daten mehr vom Betriebsspeicher in das Data Warehouse fließen, können Sie zum Beheben des Problems folgendermaßen vorgehen:
Überprüfen, ob der Datenfluss wirklich unterbrochen ist
Ermitteln des fehlerhaften Adapters
Die folgenden Verfahren helfen Ihnen bei der Problembehebung.
So vergewissern Sie sich, dass keine Daten mehr fließen
Nehmen Sie eine oder mehrere der folgenden Änderungen vor:
Checken Sie eine geänderte Datei in die Quellcodeverwaltung ein.
Aktualisieren Sie eine Arbeitsaufgabe.
Veröffentlichen Sie ein Testergebnis.
Klicken Sie auf Start, zeigen Sie auf Alle Programme, Microsoft SQL Server 2005, und klicken Sie dann auf SQL Server Management Studio.
Wählen Sie im Dialogfeld Verbindung mit Server herstellen in der Dropdownliste Servertyp den Eintrag Datenbankmodul aus, und klicken Sie auf Verbinden.
Klicken Sie in Microsoft SQL Server Management Studio auf Neue Abfrage.
Vergewissern Sie sich, dass die Änderung in den entsprechenden Tabellen angezeigt wird, indem Sie folgende Abfrage ausführen:
select * from [work item] where id = [select max[id] from [work item] ]
Wenn die Änderung nicht angezeigt wird, ist der Datenfluss unterbrochen.
So ermitteln Sie den fehlerhaften Adapter
Öffnen Sie in einem Text-Editor die Datei \Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\Warehouse\Web.Config.
Ersetzen Sie in der Zeile <add name="General" value="0" />"0" durch "3", und speichern Sie die Änderungen.
Mit dieser Änderung werden Debugnachrichten aktiviert.
Klicken Sie auf dem Anwendungsebenencomputer für Team Foundation Server auf Start, und klicken Sie anschließend auf Ausführen.
Geben Sie im Feld Öffneninetmgr ein.
Klicken Sie im linken Bereich des Internetinformationsdienste-Managers auf den Knoten Team Foundation Server.
Klicken Sie im Menü Aktion auf Öffnen.
Beginnen Sie mit der Ablaufverfolgung auf der Anwendungsebene, indem Sie ein Programm verwenden, das Ablaufverfolgungsereignisse überwacht.
Es gibt viele Freewareprogramme mit Ablaufverfolgungs- und Debugfunktionen, die die .NET-Ablaufverfolgungsfunktionen verwenden. Es können auch benutzerdefinierte Anwendungen mit diesen Funktionen erstellt werden. Weitere Informationen zum Verwenden von Ablaufverfolgungs- und Debugfunktionen finden Sie unter "Trace Listener" auf der Microsoft-Website.
Wählen Sie im Menü Erfassen alle Erfassungsbefehle aus. Lassen Sie dieses Programm geöffnet, um alle DebugView-Meldungen anzuzeigen.
Erweitern Sie im linken Bereich des Internetinformationsdienste-Managers den Knoten Warehouse, und klicken Sie dann auf den Knoten v1.0.
Klicken Sie im rechten Bereich auf warehousecontrolled.asmx.
Klicken Sie im Menü Aktion auf Durchsuchen.
Klicken Sie im ControllerService auf Ausführen und dann auf Aufrufen.
Verwenden Sie die Anwendung zum Überwachen der Ablaufverfolgung aus Schritt 7, um das Protokoll auf Ablaufverfolgungsausnahmen zu überprüfen, die anzeigen, welcher Adapter nicht richtig funktioniert.
Daten in einem Bericht sind veraltet und werden offenbar nicht aktualisiert
Wenn Sie vermuten, dass Daten in einem oder mehreren Berichten überholt sind und nicht aktualisiert wurden oder die folgende Fehlermeldung ausgegeben wird: "Fehler bei der Berichtsverarbeitung. (rsProcessingAborted)", kann ein Problem mit der automatischen Aktualisierung des Data Warehouse vorliegen.
Die Daten in den Betriebsspeichern (Arbeitsaufgabenverfolgung, Versionskontrolle, Build und Integrationsdienste) werden nach einem Zeitplan in eine relationale Datenbank (TfsWarehouse) und anschließend in einen OLAP-Cube übertragen. Die Berichte werden durch Abfragen des Cubes erstellt. Standardmäßig ruft der Windows-Dienst mit der Bezeichnung Visual Studio Team Foundation Server Scheduler den Warehouse-Webdienst jede Stunde auf, um die Verarbeitung des Warehouse zu starten. Der Cube und die Berichte sollten verfügbar sein, während dieser Prozess im Hintergrund weiter ausgeführt wird.
Bevor Sie mit der Problembehandlung beginnen, sollten Sie sich als Mitglied der Sicherheitsgruppe Administratoren auf Anwendungs- und Datenebene anmelden. Die Datenbank und die Cubes befinden sich auf der Datenebene, Reporting Services und die Berichte dagegen auf der Anwendungsebene.
Sie haben folgende Möglichkeiten zur Behebung des Problems:
Deaktivieren Sie auf Anwendungsebene die kurzen Fehlermeldungen in Internet Explorer, sodass alle Meldungen angezeigt werden.
Überprüfen Sie, ob der Windows-Dienst mit der Bezeichnung Visual Studio Team Foundation Server Scheduler ausgeführt wird.
Der Taskplanerdienst von Visual Studio Team Foundation Server signalisiert dem Warehouse-Webdienst, Daten zu aggregieren und den Cube zu verarbeiten. Es werden Daten aus allen funktionsfähigen Systemen in die Datenbank TfsWarehouse übertragen und von dort aus für die Aufnahme in den Cube verarbeitet.
Überprüfen Sie die Verarbeitung der ins Warehouse übertragenen Daten.
Verarbeiten Sie das Warehouse manuell.
Durchsuchen Sie die Berichte.
Die folgenden Verfahren helfen Ihnen bei der Problembehebung.
So deaktivieren Sie die kurzen Fehlermeldungen in Internet Explorer
Starten Sie auf der Anwendungsebene Internet Explorer.
Klicken Sie im Menü Extras auf Internetoptionen.
Klicken Sie im Dialogfeld Internetoptionen auf die Registerkarte Erweitert.
Deaktivieren Sie das Kontrollkästchen Kurze HTTP-Fehlermeldungen anzeigen.
So überprüfen Sie, ob der Visual Studio Team Foundation Server-Taskplanerdienst ausgeführt wird
Klicken Sie auf der Datenebene auf Starten, zeigen Sie auf Verwaltung, und klicken Sie dann auf Dienste.
Führen Sie im Fenster Dienste einen Bildlauf zu Taskplaner von Visual Studio Team Foundation Server aus, und überprüfen Sie, ob in der Spalte Status der Status Gestartet angezeigt wird.
Wenn der Dienst nicht gestartet ist, klicken Sie mit der rechten Maustaste auf Taskplaner von Visual Studio Team Foundation Server, undklicken Sie dann auf Starten.
Stellen Sie fest, wann der Taskplaner das Warehouse das letzte Mal zur Verarbeitung aufgerufen hat. Wechseln Sie dazu in das Verzeichnis %ProgramFiles%\Microsoft Visual Studio 2008 Team Foundation Server\TfsServerScheduler.
In der XML-Datei in diesem Verzeichnis ist aufgezeichnet, zu welchem Zeitpunkt das letzte Mal versucht wurde, eine Warehouseverarbeitung durchzuführen.
So überprüfen Sie, ob Daten bei der Verarbeitung ins Warehouse übertragen wurden
Klicken Sie auf Start, zeigen Sie auf Alle Programme, Microsoft SQL Server 2005, und klicken Sie dann auf SQL Server Management Studio.
Wählen Sie im Dialogfeld Verbindung mit Server herstellen in der Dropdownliste Servertyp den Eintrag Datenbankmodul aus, und klicken Sie auf Verbinden.
Klicken Sie in Microsoft SQL Server Management Studio auf Neue Abfrage.
Stellen Sie fest, welche Datenmenge in den Datencube übertragen wurde, indem Sie folgende Abfrage ausführen:
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)
Wenn keine Daten vorhanden oder die Daten nicht schnell genug verfügbar sind, signalisiert entweder der Planer die Verarbeitung nicht oder es besteht ein Problem bei der Datenzusammensetzung im Warehouse.
So verarbeiten Sie das Warehouse manuell
Melden Sie sich auf Anwendungsebene an.
Öffnen Sie https://localhost:8080/Warehouse/v1 .0/warehousecontroller.asmx.
Klicken Sie auf GetWarehouseStatus und dann auf Aufrufen.
Warten Sie, bis sich der Dienst im Leerlauf befindet. Er sollte ProcessingAdapters (Schemaänderungen), ProcessingOlap (Schemaänderungen), ProcessingAdapters (Datenabruf) und ProcessingOlap (Verarbeitung des Cubes) zurückgeben und sich danach im Leerlauf befinden.
Öffnen Sie https://localhost:8080/Warehouse/v1 .0/warehousecontroller.asmx.
Klicken Sie auf Ausführen und dann auf Aufrufen.
Damit wird die Verarbeitung des Warehouses gestartet. Der Dienst gibt True oder False zurück, abhängig davon, ob die (asynchrone) Verarbeitung begonnen hat.
Sie können Schritt 3 wiederholen, um die Verarbeitung zu überwachen.
Sie können Schritt 2 wiederholen, um zu überprüfen, ob Daten übertragen wurden. Falls dabei ein Problem auftritt, finden Sie im folgenden Abschnitt, "So sammeln Sie Fehlerdaten", Hinweise zum Zeitraum der Verarbeitung.
So öffnen Sie die Berichte
Erweitern Sie in Team Explorer den Knoten Berichte, und durchsuchen Sie die einzelnen Teamberichte.
In jedem Bericht ist die Zeit der letzten Verarbeitung des Warehouses in folgender Form angegeben:
Bericht generiert: jjjj/mm/tt hh:mm:ss von Domäne\Benutzer; Letzte Warehouseaktualisierung: jjjj/mm/tt hh:mm:ss
Die Daten sollten aktuell und weniger als eine Stunde alt sein.
Wenn die Daten mehr als eine Stunde alt sind, deaktivieren Sie die Zwischenspeicherung für den Bericht:
Öffnen Sie in Internet Explorer die Seite http://<Server>/Berichte/.
Klicken Sie im Berichts-Manager auf den Teamprojektnamen und dann auf den Bericht.
Klicken Sie auf die Registerkarte Eigenschaften und dann auf Ausführung.
Wählen Sie Keine temporären Kopien dieses Berichts zwischenspeichern, und klicken Sie dann auf Übernehmen.
Klicken Sie auf die Registerkarte Ansicht, und zeigen Sie den Bericht an.
So sammeln Sie Fehlerdaten
Überprüfen Sie das Anwendungsereignisprotokoll auf Fehler (mit einem roten X markiert) aus der Quelle "Warehouse". Der Fehler und der Fehlerstapel in diesem Ereignisprotokoll können zum Identifizieren des Problems beitragen.
Wenn alle Schritte zu Fehlern führen, erfassen Sie Ablaufverfolgungsdaten, um den Supportspezialisten oder Produktteamkollegen bei der Problemdiagnose zu helfen.
Verwenden Sie ein Tool wie beispielsweise DBMON zum Erfassen der Debugausgabe.
Öffnen Sie in einem Text-Editor die Datei \Programme\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\Warehouse\Web.Config.
Ersetzen Sie in der Zeile <add name="General" value="0" />"0" durch "4", und speichern Sie die Änderungen.
Siehe auch
Aufgaben
Problembehandlung bei der Team Foundation-Berichterstellung