Freigeben über


Problembehandlung für Data Warehouse

In diesem Thema sind häufige 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 das Problem auch nach dem Lesen dieser Tipps und der Tipps im Hilfethema der jeweiligen Fehlermeldung nicht beheben können, können Sie die Technischen Foren von Microsoft für Visual Studio Team System (https://go.microsoft.com/fwlink/?LinkId=54490) durchsuchen. Diese Foren bieten durchsuchbare Threads zu verschiedenen Problembehandlungsthemen. Sie werden regelmäßig überprüft, um eine möglichst schnelle Beantwortung neuer Einträge zu gewährleisten.

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:

  1. Überprüfen, ob der Datenfluss wirklich unterbrochen ist

  2. Ermitteln des fehlerhaften Adapters

Die folgenden Verfahren helfen Ihnen bei der Problembehebung.

So vergewissern Sie sich, dass keine Daten mehr fließen

  1. 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.

  2. Klicken Sie auf Start, zeigen Sie auf Alle Programme und auf Microsoft SQL Server 2005, und klicken Sie auf SQL Server Management Studio.

  3. Wählen Sie im Dialogfeld Verbindung mit Server herstellen in der Dropdownliste Servertyp den Eintrag Datenbankmodul aus, und klicken Sie auf Verbinden.

  4. Klicken Sie in Microsoft SQL Server Management Studio auf Neue Abfrage.

  5. 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

  1. Klicken Sie auf dem Team Foundation Server-Anwendungsebenencomputer auf Start, zeigen Sie auf Ausführen, und geben Sie im Feld Öffnen den Befehl inetmgr ein.

  2. Klicken Sie im linken Bereich des Internetinformationsdienste-Managers auf den Knoten Team Foundation Server.

  3. Klicken Sie im Menü Aktion auf Öffnen.

  4. Klicken Sie auf die Datei Web.Config, und klicken Sie dann im Menü Datei auf Bearbeiten.

  5. Suchen Sie die Zeile <add name="General" value="0" />, und ersetzen Sie "0" durch "3". Mit dieser Änderung werden Debugnachrichten aktiviert.

  6. 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 zur Verwendung der Ablaufverfolgungs- und Debugfunktionen finden Sie unter https://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbconTraceListeners.asp.

  7. Wählen Sie im Menü Erfassen alle Erfassungsbefehle aus. Lassen Sie dieses Programm geöffnet, um alle DebugView-Meldungen anzuzeigen.

  8. Erweitern Sie im linken Bereich des Internetinformationsdienste-Managers den Knoten Warehouse, und klicken Sie dann auf den Knoten v1.0.

  9. Klicken Sie im rechten Bereich auf warehousecontrolled.asmx.

  10. Klicken Sie im Menü Aktion auf Durchsuchen.

  11. Klicken Sie im ControllerService auf Ausführen und dann auf Aufrufen.

  12. Verwenden Sie die Anwendung zum Überwachen der Ablaufverfolgung aus Schritt 6, 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 den Verdacht haben, dass Daten in einem oder mehreren Berichten veraltet sind und nicht aktualisiert werden, oder wenn Sie die Fehlermeldung "Fehler bei der Berichtsverarbeitung. (rsProcessingAborted)" erhalten, liegt möglicherweise ein Problem mit der automatischen Aktualisierung des Data Warehouses vor.

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 TfsServerScheduler den Warehouse-Webdienst stündlich auf, um die Verarbeitung des Warehouses 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:

  1. Deaktivieren Sie auf Anwendungsebene die kurzen Fehlermeldungen in Internet Explorer, sodass alle Meldungen angezeigt werden.

  2. Vergewissern Sie sich, dass der Windows-Dienst TFSServerScheduler ausgeführt wird.

    Der TFSServerScheduler-Dienst veranlasst den Warehouse-Webdienst zum Zusammenfassen der Daten und zur Verarbeitung des Cubes. 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.

  3. Überprüfen Sie die Verarbeitung der ins Warehouse übertragenen Daten.

  4. Verarbeiten Sie das Warehouse manuell.

  5. Durchsuchen Sie die Berichte.

Die folgenden Verfahren helfen Ihnen bei der Problembehebung.

So deaktivieren Sie die kurzen Fehlermeldungen in Internet Explorer

  1. Starten Sie auf der Anwendungsebene Internet Explorer.

  2. Klicken Sie im Menü Extras auf Internetoptionen.

  3. Klicken Sie im Dialogfeld Internetoptionen auf die Registerkarte Erweitert.

  4. Deaktivieren Sie das Kontrollkästchen Kurze HTTP-Fehlermeldungen anzeigen.

So überprüfen Sie, ob der Windows-Dienst TFSServerScheduler ausgeführt wird

  1. Klicken Sie auf der Datenebene auf Starten, zeigen Sie auf Verwaltung, und klicken Sie dann auf Dienste.

  2. Führen Sie im Fenster Dienste einen Bildlauf zu TFSServerScheduler durch, und überprüfen Sie, ob in der Spalte Status der Status Gestartet angezeigt wird.

    Wenn der Dienst nicht gestartet wurde, klicken Sie mit der rechten Maustaste auf TFSServerScheduler und wählen Starten.

  3. Stellen Sie fest, wann der Planer das Warehouse das letzte Mal zur Verarbeitung aufgerufen hat. Dazu wechseln Sie in das Verzeichnis %Programme%\Microsoft Team Foundation Server 2005\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 die Daten bei der Verarbeitung ins Warehouse übertragen wurden

  1. Klicken Sie auf Start, zeigen Sie auf Alle Programme, Microsoft SQL Server 2005, und klicken Sie dann auf SQL Server Management Studio.

  2. Wählen Sie im Dialogfeld Verbindung mit Server herstellen in der Dropdownliste Servertyp den Eintrag Datenbankmodul aus, und klicken Sie auf Verbinden.

  3. Klicken Sie in Microsoft SQL Server Management Studio auf Neue Abfrage.

  4. 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

  1. Melden Sie sich auf Anwendungsebene an.

  2. Öffnen Sie https://localhost:8080/Warehouse/v1 .0/warehousecontroller.asmx.

  3. 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.

  4. Öffnen Sie https://localhost:8080/Warehouse/v1 .0/warehousecontroller.asmx.

  5. 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.

  6. Sie können Schritt 3 wiederholen, um die Verarbeitung zu überwachen.

  7. 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

  1. 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.

  2. Wenn die Daten mehr als eine Stunde alt sind, deaktivieren Sie die Zwischenspeicherung für den Bericht:

    1. Öffnen Sie in Internet Explorer die Seite http://<Server>/Berichte/.

    2. Klicken Sie im Bericht-Manager auf den Teamprojektnamen und dann auf den Bericht.

    3. Klicken Sie auf die Registerkarte Eigenschaften und dann auf Ausführung.

    4. Wählen Sie Keine temporären Kopien dieses Berichts zwischenspeichern, und klicken Sie dann auf Übernehmen.

    5. Klicken Sie auf die Registerkarte Ansicht, und zeigen Sie den Bericht an.

So sammeln Sie Fehlerdaten

  1. Ü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.

  2. Wenn alle Schritte zu Fehlern führen, erfassen Sie Ablaufverfolgungsdaten, um den Supportspezialisten oder Produktteamkollegen bei der Problemdiagnose zu helfen.

  3. Verwenden Sie ein Tool wie beispielsweise DBMON zum Erfassen der Debugausgabe.

  4. Klicken Sie auf dem Team Foundation Server-Anwendungsebenencomputer auf Start, zeigen Sie auf Ausführen, und geben Sie im Feld Öffnen den Befehl inetmgr ein.

  5. Erweitern Sie im linken Bereich des Internetinformationsdienste-Managers den Knoten des Anwendungsebenenservers, erweitern Sie den Knoten Websites, und klicken Sie dann auf den Knoten Team Foundation Server.

  6. Klicken Sie im Menü Aktion auf Öffnen.

  7. Klicken Sie auf die Datei Web.Config, und klicken Sie dann im Menü Datei auf Bearbeiten.

  8. Suchen Sie die Zeile <add name="General" value="0" />, und ersetzen Sie "0" durch "4". Mit dieser Änderung werden Debugnachrichten aktiviert.

Siehe auch

Aufgaben

Problembehandlung bei der Team Foundation-Berichterstellung

Weitere Ressourcen

Verwenden von Team Foundation Server-Befehlszeilentools
Team Foundation Server-Data Warehouse