Risoluzione dei problemi relativi al data warehouse
Aggiornamento: novembre 2007
In questo argomento vengono elencati i problemi comuni che possono verificarsi quando si utilizza il data warehouse di Team Foundation Server.
Viene interrotto il flusso dei dati dall'archivio operativo al data warehouse
I dati di un report sono obsoleti e sembra che non vengano aggiornati
Se non è possibile risolvere un problema dopo aver esaminato questi suggerimenti e quelli forniti nell'argomento specifico della Guida relativo al messaggio di errore, visitare i forum tecnici di Visual Studio Team System nel sito Web Microsoft (informazioni in lingua inglese). Oltre a contenere thread in cui è possibile eseguire ricerche su una serie di argomenti relativi alla risoluzione dei problemi, questi forum vengono sottoposti a controlli affinché forniscano risposte rapide alle domande degli utenti.
Viene interrotto il flusso dei dati dall'archivio operativo al data warehouse
Se si sospetta che sia stato interrotto il flusso dei dati dall'archivio operativo al data warehouse, è possibile risolvere il problema tramite le seguenti operazioni:
Verificare che il flusso dei dati si sia effettivamente interrotto.
Identificare l'adattatore in cui si è verificato il problema.
Le seguenti procedure possono consentire di risolvere il problema.
Per verificare che il flusso dei dati si sia interrotto
Apportare una o più delle seguenti modifiche:
Archiviare un file modificato nel controllo del codice sorgente.
Aggiornare un elemento di lavoro.
Pubblicare i risultati di un test.
Fare clic su Start, scegliere Tutti i programmi, scegliere Microsoft SQL Server 2005 e quindi SQL Server Management Studio.
Nell'elenco Tipo server nella finestra di dialogo Connetti al server selezionare Motore di database, quindi fare clic su Connetti.
In Microsoft SQL Server Management Studio fare clic su Nuova query.
Verificare che la modifica sia presente nelle tabelle appropriate eseguendo la seguente query:
select * from [work item] where id = [select max[id] from [work item] ]
Se la modifica non è presente, il flusso dei dati si è interrotto.
Per identificare l'adattatore in cui si è verificato il problema
Aprire in un editor di testo il file Web.Config contenuto nel percorso \Programmi\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\Warehouse\.
Nella riga <add name="General" value="0" />, sostituire "0" con "3" e salvare le modifiche.
In questo modo, vengono abilitati i messaggi di debug.
Nel computer di livello applicazione di Team Foundation Server, fare clic su Start e quindi su Esegui.
Nella casella Apri digitare inetmgr.
Nel riquadro a sinistra di Gestione Internet Information Services fare clic sul nodo Team Foundation Server.
Scegliere Apri dal menu Azione.
Utilizzando un programma in grado di ascoltare gli eventi di analisi del sistema, avviare l'analisi nel livello applicazione.
Molte applicazioni freeware offrono funzionalità di analisi e debug tramite le funzionalità di analisi .NET oppure è possibile compilare applicazioni personalizzate a tale scopo. Per ulteriori informazioni sull'utilizzo delle funzionalità di analisi e debug, vedere "Trace Listeners" nel sito Web Microsoft (informazioni in lingua inglese).
Selezionare tutti i comandi di acquisizione dal menu Acquisisci. Tenere aperto il programma per visualizzare tutti i messaggi di DebugView.
Nel riquadro a sinistra di Gestione Internet Information Services espandere il nodo Warehouse, quindi fare clic sul nodo v1.0.
Nel riquadro a destra fare clic su warehousecontrolled.asmx.
Scegliere Sfoglia dal menu Azione.
In ControllerService fare clic su Esegui, quindi su Richiama.
Utilizzando l'applicazione di monitoraggio dell'analisi indicata al passaggio 7, analizzare se nel log sono presenti eccezioni di analisi che indicano quale adattatore non funziona correttamente.
I dati di un report sono obsoleti e sembra che non vengano aggiornati
Se si sospetta che i dati di uno o più report siano obsoleti e non vengano aggiornati oppure se viene visualizzato il messaggio di errore "Errore durante l'elaborazione del report. (rsProcessingAborted)", potrebbe esserci un problema con l'aggiornamento automatico del data warehouse.
I dati negli archivi operativi (Gestione elementi di lavoro, Controllo della versione, Compilazione e Integration Services) vengono periodicamente inseriti in un database relazionale (TfsWarehouse), quindi in un cubo OLAP. Il rendering dei report viene eseguito tramite una query sul cubo. Per impostazione predefinita, il servizio Windows denominato Utilità di pianificazione di Visual Studio Team Founation Server chiama il servizio Web warehouse ogni ora per inizializzare l'elaborazione del warehouse. Il cubo e i report devono essere disponibili in quanto il processo continua in background.
Prima di iniziare a risolvere i problemi, è necessario essere un membro del gruppo di sicurezza Amministratori nel livello applicazione e nel livello dati. Il database e i cubi si trovano nel livello dati, mentre i report e il sito di Reporting Services si trovano nel livello applicazione.
È possibile risolvere il problema tramite le seguenti operazioni:
Nel livello applicazione disattivare la gestione dei messaggi di errore brevi di Internet Explorer in modo che sia possibile visualizzare tutti i messaggi.
Verificare che il servizio Windows denominato Utilità di pianificazione di Visual Studio Team Foundation Server sia in esecuzione.
L'Utilità di pianificazione di Visual Studio Team Foundation Server segnala al servizio Web warehouse di aggregare i dati ed elaborare il cubo. I dati vengono estratti da tutti i sistemi operativi e immessi nel database TfsWarehouse, quindi elaborati nel cubo.
Verificare l'elaborazione dei dati immessi nel warehouse.
Elaborare manualmente il warehouse.
Sfogliare i report.
Le seguenti procedure possono consentire di risolvere il problema.
Per disattivare la gestione dei messaggi di errore brevi di Internet Explorer
Nel livello applicazione avviare Internet Explorer.
Scegliere Opzioni Internet dal menu Strumenti.
Nella finestra di dialogo Opzioni Internet scegliere la scheda Avanzate.
Deselezionare la casella di controllo Mostra messaggi di errore HTTP brevi.
Per verificare che l’Utilità di pianificazione di Visual Studio Team Foundation Server sia in esecuzione.
Nel livello dati fare clic sul pulsante Start, scegliere Strumenti di amministrazione, quindi Servizi.
Nella finestra Servizi scorrere fino a Utilità di pianificazione di Visual Studio Team Foundation e verificare che nella colonna Stato sia indicato Avviato.
Se il servizio non è avviato, fare clic con il pulsante destro del mouse su Utilità di pianificazione di Visual Studio Team Foundation Server, quindisu Avvia.
Determinare l'ultima volta in cui l'utilità di pianificazione ha chiamato il warehouse da elaborare. A tale scopo, passare al percorso %Programmi%\Microsoft Visual Studio 2008 Team Foundation Server\TfsServerScheduler.
Nel file con estensione XML presente in tale directory viene registrato l'ultimo tentativo di elaborazione del warehouse.
Per verificare che durante l'elaborazione i dati siano stati inseriti nel warehouse
Fare clic su Start, scegliere Tutti i programmi, scegliere Microsoft SQL Server 2005 e quindi SQL Server Management Studio.
Nell'elenco Tipo server nella finestra di dialogo Connetti al server selezionare Motore di database, quindi fare clic su Connetti.
In Microsoft SQL Server Management Studio fare clic su Nuova query.
Determinare la quantità di dati inseriti nel cubo dati eseguendo la query seguente:
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)
Se non sono presenti dati o se i dati sono eccessivamente latenti, significa che tramite l'utilità di pianificazione non viene segnalata l'elaborazione o che si è verificato un problema relativo all'aggregazione dei dati nel warehouse.
Per elaborare manualmente il warehouse
Accedere al livello applicazione.
Aprire https://localhost:8080/Warehouse/v1.0/warehousecontroller.asmx.
Fare clic su GetWarehouseStatus, quindi su Richiama.
Attendere che il servizio diventi inattivo. Il servizio restituisce ProcessingAdapters (modifiche allo schema), ProcessingOlap (modifiche allo schema), ProcessingAdapters (estrazione dei dati), ProcessingOlap (elaborazione del cubo), quindi diventa inattivo.
Aprire https://localhost:8080/Warehouse/v1.0/warehousecontroller.asmx.
Fare clic su Esegui, quindi su Richiama.
Verrà avviata l'elaborazione del warehouse. Il servizio restituisce True o False a seconda che l'elaborazione sia stata o meno avviata (in modo asincrono).
È possibile ripetere il passaggio 3 per controllare l'elaborazione.
A scopo di verifica, è possibile ripetere il passaggio 2 per controllare che i dati siano stati spostati, quindi, se si è verificato un problema, vedere le procedure riportate nella seguente sezione "Per raccogliere i dati sugli errori" per l'intervallo di tempo dell'elaborazione.
Per aprire i report
In Team Explorer espandere il nodo Report e individuare i singoli report del team.
In ogni report è indicata l'ora dell'ultima elaborazione del warehouse, espressa nella seguente forma:
Report generato: aaaa/mm/gg hh:mm:ss da dominio\utente; Ultimo aggiornamento warehouse: aaaa/mm/gg hh:mm:ss
I dati devono essere aggiornati e risalire a meno di un'ora prima.
Se i dati risalgono a più di un'ora prima, disabilitare la memorizzazione nella cache per il report:
In Internet Explorer aprire http://<server >/Reports/.
In Gestione rapporti fare clic sul nome del progetto Team, quindi sul report.
Selezionare la scheda Proprietà, quindi fare clic su Esecuzione.
Selezionare Non memorizzare nella cache copie temporanee del report, quindi fare clic su Applica.
Selezionare la scheda Visualizza e visualizzare il report.
Per raccogliere i dati sugli errori
Analizzare il log eventi dell'applicazione per determinare se ci sono errori, indicati da una X rossa, derivanti dall'origine "Warehouse". L'errore e lo stack errori nel log eventi possono aiutare a identificare il problema.
Se tutti i passaggi generano errori, raccogliere un'analisi per aiutare lo specialista del supporto tecnico o il membro del team di prodotto a diagnosticare il problema.
Utilizzare uno strumento come DBMON per acquisire l'output di debug.
Aprire in un editor di testo il file Web.Config contenuto nel percorso \Programmi\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\Warehouse\.
Nella riga <add name="General" value="0" />, sostituire "0" con "4" e salvare le modifiche.
Vedere anche
Attività
Risoluzione dei problemi relativi alla generazione di report di Team Foundation
Altre risorse
Utilizzo degli strumenti della riga di comando di Team Foundation Server