Freigeben über


Lösen von Schemakonflikten im Data Warehouse

Schemakonflikte treten auf, wenn sich ein Attributsatz für berichtsfähige Felder über Teamprojektsammlungen hinweg unterscheidet. Wenn ein Schemakonflikt auftritt, können die diesem Schema zugeordneten Daten nicht in das Data Warehouse und den SQL Server Analysis Services-Datencube verschoben werden. Sie müssen alle Schemakonflikte korrigieren, um die Verarbeitungssperre der zugeordneten Daten für das Warehouse aufzuheben und die zugeordneten Berichte zu aktivieren, um aktuelle Daten anzuzeigen.

Wichtig

Bei Schemakonflikten können Sie die Blockierung des Data Warehouses aufheben, indem sie Service Pack 1 (SP1) für Visual Studio Team Foundation Server 2010 installieren. Nach Installation von SP1 werden Felder, die nicht in Konflikt stehen, wie üblich verarbeitet. In Konflikt stehenden Feldern werden NULL-Werte zugewiesen, bis Sie die Konflikte gelöst haben. Anschließend werden sie wie üblich verarbeitet.

Außerdem wird vom System für jeden erkannten Konflikt ein Benachrichtigungsereignis generiert. Durch Abonnieren des Ereignisses können Sie nun Warnungen empfangen, wenn bei den einzelnen für eine Auflistung definierten Teamprojekten Schemakonflikte auftreten.

Alle berichtsfähigen Daten aus allen Teamprojekten, die in allen Projektsammlungen für eine Bereitstellung von Visual Studio Team Foundation Server definiert sind, werden in ein einzelnes relationales Data Warehouse geschrieben. Daten aus diesem Warehouse werden dann verarbeitet und in den Cube geschrieben. Durch das Sammeln von Daten in einem einzelnen Data Warehouse wird die teamprojektübergreifende Berichterstellung unterstützt. Da Felder jedoch für jede Projektauflistung separat verwaltet werden, können Schemakonflikte auftreten, wenn einem oder mehreren Attributen eines Felds, das demselben Berichtsverweisnamen zugewiesen wurde, unterschiedliche Definitionen zugewiesen werden.

In diesem Thema

  • Fehlermeldungen, die auf Schemakonflikte hinweisen

  • Quellen von Schemakonflikten

  • Auflösen von Schemakonflikten

  • Überprüfen, ob Schemakonflikte aufgelöst wurden

Fehlermeldungen, die auf Schemakonflikte hinweisen

Wenn ein Schemakonflikt auftritt, wird an den folgenden Orten eine Fehlermeldung angezeigt:

  • Im Ereignisprotokoll des Anwendungsebenenservers.

    Tipp

    In Team Foundation Server wird täglich im Ereignisprotokoll eine Fehlermeldung protokolliert, bis der Datenkonflikt aufgelöst wurde.

  • In einem Bericht, der mit den MSF-Prozessvorlagen bereitgestellt wird und der über den Berichts-Manager angezeigt wird.

  • In einem Dashboard, das mit den MSF-Prozessvorlagen bereitgestellt wird und das über das Projektportal angezeigt wird.

    Tipp

    Sie können ermitteln, ob ein Bericht oder ein Dashboard unlängst aktualisiert wurde, wenn Sie nach dem Zeitstempel Letzte Aktualisierung suchen, der in der rechten unteren Ecke der einzelnen Berichte und Dashboards angezeigt wird. Der Zeitstempel entspricht dem letzten Zeitpunkt, zu dem die Verarbeitung der einzelnen, für die Fertigstellung geplanten Warehouse-Adapteraufträge für die Projektauflistungen erfolgreich abgeschlossen wurde. Bei der Zeitstempelberechnung werden benutzerdefinierte Adapteraufträge eingeschlossen. Adapteraufträge, die für das Ausführen des Warehouse Control-Webdiensts gesperrt sind, werden ignoriert.

    Wenn ein Schemakonflikt verhindert, dass Daten für einen Bericht im Data Warehouse verfügbar sind, wird der Zeitstempel für den Bericht nicht aktualisiert.

Zusätzlich zu den aufgeführten Meldungen können Sie weitere Informationen abrufen, indem Sie den Vorgang GetProcessingStatus des Warehouse Control-Webdiensts verwenden. Weitere Informationen finden Sie unter Manuelles Verarbeiten des Data Warehouses und des Analysis Services-Cubes für Team Foundation Server.

Quellen von Schemakonflikten

Schemakonflikte treten auf, wenn ein Projektadministrator eine der folgenden Aktionen ausführt:

  • Fügt einem Arbeitsaufgabentyp in einer Projektauflistung ein berichtsfähiges Feld hinzu, und die diesem Feld zugewiesenen Attribute stimmen nicht mit denen in anderen Projektauflistungen überein.

  • Ändert ein einem Arbeitsaufgabenfeld zugewiesenes Attribut, das in mehreren Projektauflistungen verwendet wird, obwohl durch die Änderungen ein Konflikt mit den Zuweisungen in anderen Auflistungen auftritt.

    Tipp

    Ein Projektadministrator kann die aufgeführten Fehler nur vermeiden, indem er die Attributzuweisungen für Felder überprüft, die für mehrere Projektauflistungen einer Bereitstellung definiert wurden.

Fehler treten auf, wenn ein Feld in mehreren Projektauflistungen entweder über denselben Verweis- oder Berichtsverweisnamen verfügt und mindestens eines der folgenden Attribute für dieses Feld in mindestens zwei Auflistungen nicht übereinstimmt:

  • name: Der Anzeigename des Felds, der optional angezeigt wird, wenn Sie eine Arbeitsaufgabenabfrage erstellen.

  • reportingname: Der Name, der in Berichten angezeigt wird. Wenn Sie keinen Wert angeben, wird der Wert verwendet, der dem name-Attribut zugewiesen ist.

  • reportable/reportingtype: Ob die Daten des Felds in Berichte eingeschlossen werden können und gegebenenfalls der berichtsfähige Typ (z. B. None, Detail, Dimension oder Measure).

    Tipp

    Das FIELD-Element verwendet das Attribut reportable und der Befehl witadmin changefield das Attribut reportingtype. Diese Attribute definieren die gleichen Informationen.

  • type: Der für das Feld zulässige Datentyp (z. B. Integer, HTML, String, Double oder DateTime).

Die folgende Tabelle enthält Beispiele für Attributzuweisungen, die Schemakonflikte verursachen. In diesen Beispielen werden der Berichtsverweisname und der Berichtsname nicht zugewiesen.

Attribut

Projektauflistung 1

Projektauflistung 2

Schemakonflikt

Typ

Zeichenfolge

Integer

Datentypen stimmen nicht überein.

ReportingName

Aktivität

Allgemeine Aktivität

Berichterstellungsnamen stimmen nicht überein.

Berichtsfähig

Detail

Dimension

Berichterstellungstypen stimmen nicht überein.

Auflösen von Schemakonflikten

Sie können das Ereignisprotokoll auf dem Anwendungsebenenserver überprüfen, um weitere Informationen zu dem Feld abzurufen, das einen Schemakonflikt verursacht. Nachdem Sie das Feld oder die Felder ermittelt haben, die den Konflikt verursachen, müssen Sie folgende Schritte ausführen:

  1. Überprüfen Sie die Attribute, die dem Feld für alle Projektauflistungen zugewiesen wurden. Sie können den Befehl witadmin listfields verwenden, der über die folgende Syntax verfügt:

    witadmin listfields /collection:CollectionURL /n:RefName [/unused]
    

    Weitere Informationen finden Sie unter Verwalten von Arbeitsaufgabenfeldern [witadmin].

  2. Legen Sie fest, mit welcher der folgenden Methoden der Konflikt aufgelöst werden soll:

    • Ändern Sie das Attribut für das Feld in einer Projektauflistung so, dass es mit den Zuweisungen in den anderen Projektauflistungen übereinstimmt. Sie sollten diese Aktion durchführen, wenn die Teams das Feld in ähnlichen Berichten auf identische Weise oder für die projektübergreifende Berichterstellung verwenden.

    • Benennen Sie den Berichtsverweisnamen des Felds um, das den Konflikt verursacht. Sie sollten diese Aktion durchführen, wenn die Felder auf unterschiedliche Weise verwendet werden, oder wenn Sie ein abweichendes Feld beibehalten müssen. In diesem Fall wird das Feld nicht von Teams verwendet, die in unterschiedlichen Projektauflistungen an einer projektübergreifenden Berichterstellung arbeiten.

      Weitere Informationen finden Sie unter Hinzufügen und Ändern von Arbeitsaufgabenfeldern zum Unterstützen von Berichten.

    • Markieren Sie ein Feld für eine oder mehrere Auflistungen als nicht berichtsfähig. Sie sollten diese Aktion durchführen, wenn das Feld nicht für Berichte über diese Projektauflistungen verwendet wird.

    • Entfernen Sie das Feld aus der Teamprojektsammlung. Sie sollten diese Aktion durchführen, wenn das Feld nicht für Teamprojekten oder Berichte verwendet wird.

      Tipp

      Wenn Sie ein Feld entfernen, das in einem Bericht verwendet wird, wird dieser nicht mehr ordnungsgemäß angezeigt.

  3. Ändern Sie das einem Feld zugewiesene Attribut anhand der im vorherigen Schritt getroffenen Entscheidungen. Sie können den Befehl witadmin changefield verwenden, der über die folgende Syntax verfügt:

    witadmin changefield /collection:CollectionURL /n:RefName [/name:NewName] [/syncnamechanges:true | false] [/reportingname:ReportingName] [/reportingrefname:ReportingRefName] [/reportingtype:Type] [/reportingformula:Formula] [/noprompt]
    
  4. Um ein Feld aus einer Projektauflistung zu löschen, können Sie den Befehl witadmin deletefield verwenden, der über die folgende Syntax verfügt:

    witadmin deletefield /collection:CollectionURL /n:RefName
    

    Wichtig

    Wenn Sie ein Feld dauerhaft löschen, entfernen Sie das Feld und alle darin gespeicherten Daten aus dem Datenspeicher.

Überprüfen, ob Schemakonflikte aufgelöst wurden

Sie können überprüfen, ob die Schemakonflikte aufgelöst wurden, indem Sie die Data Warehouses bei Bedarf verarbeiten und die Berichte prüfen, um zu ermitteln, ob diese aktualisiert wurden. Optional können Sie warten, bis die Warehouse-Adapteraufträge anhand des Standardzeitplans ausgeführt wurden. In der Standardeinstellung wird die relationale Datenbank alle paar Minuten verarbeitet. Der Analysis Services-Cube wird in der Standardeinstellung jedoch nur alle zwei Stunden verarbeitet.

Tipp

Weitere Informationen über den Warehouse Control-Webdienst finden Sie unter Manuelles Verarbeiten des Data Warehouses und des Analysis Services-Cubes für Team Foundation Server.

  1. Verarbeiten Sie das relationale Data Warehouse bei Bedarf mit dem ProcessWarehouse-Vorgang von WarehouseControlService.

  2. Verarbeiten Sie den Cube bei Bedarf mit dem ProcessAnalysisDatabase-Vorgang von WarehouseControlService.

  3. Öffnen Sie ein Dashboard oder einen Berichts-Manager, und überprüfen Sie, ob die Berichte aktualisiert wurden. Weitere Informationen finden Sie unter Dashboards (Agile) oder Berichte (Agile).

Wenn weiterhin Fehlermeldungen angezeigt werden, können Sie weitere Informationen zum Datenkonflikt und die betroffenen blockierten Adapter abrufen, indem Sie den GetProcessingStatus-Vorgang von WarehouseControlService ausführen.

Siehe auch

Referenz

Verwalten von Arbeitsaufgabenfeldern [witadmin]

Konzepte

Erstellen, Anpassen und Verwalten von Berichten für die Anwendungslebenszyklus-Verwaltung von Visual Studio

Weitere Ressourcen

Hinzufügen und Ändern von Arbeitsaufgabenfeldern zum Unterstützen von Berichten

Manuelles Verarbeiten des Data Warehouses und des Analysis Services-Cubes für Team Foundation Server