Dépannage de l'entrepôt de données

Mise à jour : novembre 2007

Cette rubrique décrit les problèmes courants suivants qui peuvent se produire lorsque vous utilisez l'entrepôt de données Team Foundation Server.

Les données ne circulent plus du magasin opérationnel vers l'entrepôt de données

Les données d'un rapport sont obsolètes et ne semblent pas à jour

Si vous ne pouvez pas résoudre un problème après avoir passé en revue ces conseils et ceux présentés dans la rubrique d'aide individuelle correspondant à chaque message d'erreur, visitez les forums relatifs à Visual Studio Team System sur le site Web Microsoft. Ces forums fournissent des threads dans lesquels vous pouvez rechercher des informations sur diverses rubriques de dépannage et sont contrôlés pour fournir des réponses rapides à vos questions.

Les données ne circulent plus du magasin opérationnel vers l'entrepôt de données

Si vous pensez que les données ne circulent plus du magasin opérationnel vers l'entrepôt de données, vous pouvez résoudre le problème en procédant comme suit :

  1. Confirmez que le flux de données s'est réellement arrêté.

  2. Identifiez l'adaptateur défectueux.

Les procédures suivantes vous aideront à résoudre le problème.

Pour confirmer que les données ont cessé de circuler

  1. Effectuez l'une ou l'ensemble des modifications suivantes :

    • Archivez un fichier modifié dans un contrôle de code source.

    • Mettez à jour un élément de travail.

    • Publiez un résultat de test.

  2. Cliquez sur Démarrer, pointez sur Tous les programmes, pointez sur Microsoft SQL Server 2005, puis cliquez sur SQL Server Management Studio.

  3. Dans la liste Type de serveur, dans la boîte de dialogue Se connecter au serveur, sélectionnez Moteur de base de données, puis cliquez sur Connecter.

  4. Dans Microsoft SQL Server Management Studio, cliquez sur Nouvelle requête.

  5. Confirmez que la modification apparaît dans les tables appropriées en exécutant la requête suivante :

    select * from [work item] where id = [select max[id] from [work item] ]
    

    Si la modification n'apparaît pas, les données ne circulent plus.

Pour identifier l'adaptateur défectueux

  1. Dans un éditeur de texte, ouvrez \Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\Warehouse\Web.Config.

  2. Sur la ligne <add name="General" value="0" />, remplacez "0" par "3" et enregistrez les modifications.

    Cette modification active les messages de débogage.

  3. Sur l'ordinateur de couche Application pour Team Foundation Server, cliquez sur Démarrer, puis sur Exécuter.

  4. Dans la zone Ouvrir, tapez inetmgr.

  5. Dans le volet gauche du Gestionnaire des services Internet (IIS), cliquez sur le nœud Team Foundation Server.

  6. Dans le menu Action, cliquez sur Ouvrir.

  7. En utilisant un programme qui écoute les événements de traçage du système, commencez le traçage sur la couche Application.

    De nombreux logiciels gratuits offrent des fonctions de traçage et de débogage grâce aux fonctions de traçage .NET, ou des applications personnalisées peuvent être générées pour fournir ces fonctions. Pour plus d'informations sur l'utilisation des fonctions de traçage et de débogage, consultez « Écouteurs de traçage » sur le site Web Microsoft.

  8. Dans le menu Capturer, sélectionnez toutes les commandes de saisie. Gardez ce programme ouvert pour afficher tous les messages DebugView.

  9. Dans le volet gauche du Gestionnaire des services Internet (IIS), développez le nœud Entrepôt, puis cliquez sur le nœud v1.0.

  10. Dans le volet droit, cliquez sur warehousecontrolled.asmx.

  11. Dans le menu Action, cliquez sur Parcourir.

  12. Dans ControllerService, cliquez sur Exécuter, puis sur Appeler.

  13. À l'aide de votre application de contrôle du traçage utilisée dans l'étape 7, vérifiez si le journal contient des exceptions de trace qui indiquent l'adaptateur défectueux.

Les données d'un rapport sont obsolètes et ne semblent pas à jour

Si vous pensez que les données d'un ou de plusieurs rapports sont obsolètes et ne sont pas à jour, ou si le message d'erreur suivant : "Une erreur s'est produite lors du traitement du rapport. (rsProcessingAborted)" s'affiche, un problème s'est produit lors de la mise à jour automatique de l'entrepôt de données.

Les données contenues dans les magasins opérationnels (services de suivi des éléments de travail, de contrôle de version, de build et d'intégration) sont extraites dans une base de données relationnelle (TfsWarehouse) puis dans un cube OLAP, de manière planifiée. Les rapports sont restitués en interrogeant le cube. Par défaut, le service Windows nommé Visual Studio Team Foundation Server Scheduler appelle toutes les heures le service Web d'entrepôt pour initialiser le traitement de l'entrepôt. Le cube et les rapports doivent être disponibles pendant que ce processus continue en arrière-plan.

Avant de démarrer la résolution des problèmes, vous devez être membre du groupe de sécurité Administrateurs sur la couche Application et la couche Données. La base de données et les cubes sont présents sur la couche Données, tandis que le site et les rapports de Reporting Services sont situés sur la couche Application.

Vous pouvez résoudre le problème en procédant comme suit :

  1. Sur la couche Application, désactivez la gestion conviviale des erreurs dans Internet Explorer afin que vous puissiez afficher tous les messages.

  2. Confirmez si le service Windows nommé Visual Studio Team Foundation Server Scheduler est en cours d'exécution.

    Le service du Planificateur de tâches Visual Studio Team Foundation Server demande au service Web de l'entrepôt d'agréger les données et de traiter le cube. Les données sont extraites de tous les systèmes opérationnels puis stockées dans la base de données TfsWarehouse, d'où elles sont traitées dans le cube.

  3. Confirmez le traitement des données extraites dans l'entrepôt.

  4. Traitez manuellement l'entrepôt.

  5. Parcourez les rapports.

Les procédures suivantes vous aideront à résoudre le problème.

Pour désactiver la gestion conviviale des erreurs dans Internet Explorer

  1. Sur la couche Application, démarrez Internet Explorer.

  2. Dans le menu Outils, cliquez sur Options Internet.

  3. Dans la boîte de dialogue Options Internet, cliquez sur l'onglet Avancées.

  4. Désactivez la case à cocher Afficher des messages d'erreur HTTP simplifiés.

Pour confirmer que le service du Planificateur de tâches Visual Studio Team Foundation Server est en cours d'exécution

  1. Sur la couche Données, cliquez sur Démarrer, pointez sur Outils d'administration, puis cliquez sur Services.

  2. Dans la fenêtre Services, faites défiler jusqu'à Visual Studio Team Foundation Server Scheduleret confirmez que la colonne État indique Démarré.

    Si le service n'a pas démarré, cliquez avec le bouton droit sur Visual Studio Team Foundation Server Scheduler et puis cliquez sur Démarrer.

  3. Déterminez la dernière fois que le planificateur a appelé l'entrepôt à des fins de traitement en accédant à %ProgramFiles%\Microsoft Visual Studio 2008 Team Foundation Server\TfsServerScheduler.

    Le fichier XML contenu dans ce répertoire enregistre la dernière tentative de traitement de l'entrepôt.

Pour confirmer que le traitement a extrait les données dans l'entrepôt

  1. Cliquez sur Démarrer, pointez sur Tous les programmes, pointez sur Microsoft SQL Server 2005, puis cliquez sur SQL Server Management Studio.

  2. Dans la liste Type de serveur, dans la boîte de dialogue Se connecter au serveur, sélectionnez Moteur de base de données, puis cliquez sur Connecter.

  3. Dans Microsoft SQL Server Management Studio, cliquez sur Nouvelle requête.

  4. Déterminez la quantité de données passées dans le cube de données en exécutant la requête suivante :

    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)
    

    Si aucune donnée n'est présente, ou si les données sont très latentes, le programmateur ne signale pas de traitement ou un problème s'est produit lors de l'agrégation des données.

Pour traiter manuellement l'entrepôt

  1. Ouvrez une session sur la couche Application.

  2. Ouvrez https://localhost:8080/Warehouse/v1.0/warehousecontroller.asmx.

  3. Cliquez sur GetWarehouseStatus, puis sur Appeler.

    Attendez que le service soit inactif ; il doit retourner ProcessingAdapters (modifications de schéma), ProcessingOlap (modifications de schéma), ProcessingAdapters (extraction de données), ProcessingOlap (traitement du cube), puis devenir inactif.

  4. Ouvrez https://localhost:8080/Warehouse/v1.0/warehousecontroller.asmx.

  5. Cliquez sur Exécuter, puis sur Appeler.

    Le traitement de l'entrepôt démarre. Le service retourne True ou False s'il a commencé le traitement (de façon asynchrone).

  6. Vous pouvez répéter l'étape 3 pour surveiller le traitement.

  7. Pour vérifier, vous pouvez répéter l'étape 2 pour valider les données déplacées, et en cas de problème, consultez les procédures « Pour collecter les données sur les erreurs » décrites dans la section suivante pour la plage horaire du traitement.

Pour ouvrir les rapports

  1. Dans Team Explorer, développez le nœud Rapports et parcourez les rapports d'équipe individuels.

    Chaque rapport précise la dernière date de traitement de l'entrepôt, exprimée sous la forme suivante :

    Rapport généré : jj/mm/aaaa hh:mm:ss par domaine\utilisateur; Dernière mise à jour de l'entrepôt : jj/mm/aaaa hh:mm:ss

    Les données doivent être actuelles et dater de moins d'une heure.

  2. Si les données datent de plus d'une heure, désactivez la mise en cache du rapport :

    1. Dans Internet Explorer, ouvrez http://<serveur>/Reports/.

    2. Dans le Gestionnaire de rapports, cliquez sur le nom du projet d'équipe, puis sur le rapport.

    3. Cliquez sur l'onglet Propriétés, puis sur Exécution.

    4. Sélectionnez Ne pas placer les copies temporaires de ce rapport en cache, puis cliquez sur Appliquer.

    5. Cliquez sur l'onglet Affichage et affichez le rapport.

Pour collecter les données sur les erreurs

  1. Consultez le journal des événements de l'application pour déterminer si des erreurs apparaissent avec un X rouge, dans la source 'Warehouse'. L'erreur et sa pile contenues dans ce journal des événements peuvent aider à identifier le problème.

  2. Si toutes les étapes débouchent sur des erreurs, recueillez une trace pour aider le spécialiste d'assistance ou le membre de l'équipe produit à diagnostiquer le problème.

  3. Utilisez un outil tel que DBMON pour capturer la sortie de débogage.

  4. Dans un éditeur de texte, ouvrez \Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\Warehouse\Web.Config.

  5. Sur la ligne <add name="General" value="0" />, remplacez "0" par "4" et enregistrez les modifications.

Voir aussi

Tâches

Dépannage des rapports de Team Foundation

Autres ressources

Utilisation des outils de ligne de commande Team Foundation Server

Entrepôt de données de Team Foundation Server