Поделиться через


Устранение неполадок в хранилище данных

Обновлен: Ноябрь 2007

В этом разделе перечислены распространенные проблемы, возникающие при работе с хранилищем данных для Team Foundation Server.

Данные перестали поступать из операционного хранилища в хранилище данных

Данные в отчете устарели и не обновляются

Если после просмотра этих советов, а также советов из подраздела справки по конкретному сообщению об ошибке проблему разрешить не удается, посетите форумы по Visual Studio Team System на веб-узле корпорации Майкрософт. На этих форумах обсуждаются различные вопросы по устранению неполадок и предусмотрена возможность поиска. Темы форумов контролируются, чтобы пользователи могли быстро получать ответы на свои вопросы.

Данные перестали поступать из операционного хранилища в хранилище данных

Если есть подозрение, что данные перестали поступать в хранилище данных из операционного хранилища, эту неполадку можно устранить следующим образом:

  1. Убедиться, что поток данных действительно прекратился.

  2. Определить сбойный адаптер.

Следующие процедуры помогут решить эту проблему.

Подтверждение прекращения потока данных

  1. Выполните одно или несколько из следующих изменений:

    • Выполните возврат измененного файла в систему управления версиями.

    • Обновите рабочий элемент.

    • Опубликуйте результат теста.

  2. Нажмите кнопку Пуск, последовательно укажите пункты Все программы, Microsoft SQL Server 2005, а затем — Среда SQL Server Management Studio.

  3. В диалоговом окне Соединение с сервером из списка Тип сервера выберите Компонент Database Engine и нажмите кнопку Соединить.

  4. В Среде Microsoft SQL Server Management Studio щелкните Создать запрос.

  5. Убедитесь, что в соответствующих таблицах произошли изменения, выполнив следующий запрос:

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

    Отсутствие изменений означает, что данные перестали поступать.

Определение сбойного адаптера

  1. Откройте файл \Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\Warehouse\Web.Config в текстовом редакторе.

  2. В строке <add name="General" value="0" /> замените "0" на "3" и сохраните изменения.

    Это изменение разрешает сообщения об отладке.

  3. На компьютере уровня приложений для Team Foundation Server нажмите кнопку Пуск и выберите команду Выполнить.

  4. В поле Открыть введите inetmgr.

  5. В левой области диспетчера служб IIS щелкните узел Team Foundation Server.

  6. В меню Действие выберите команду Открыть.

  7. С помощью программы, прослушивающей события системной трассировки, начните трассировку на уровне приложений.

    Многие свободно распространяемые программы выполняют трассировку и отладку, используя возможности трассировки .NET. Для этих целей также могут быть созданы пользовательские приложения. Дополнительные сведения об использовании функций трассировки и отладки см. в разделе "Прослушиватели трассировки" на веб-узле корпорации Майкрософт.

  8. В меню Захват выберите все команды захвата. Оставьте эту программу открытой, чтобы видеть все сообщения DebugView.

  9. В левой области диспетчера служб IIS разверните узел Хранилище, а затем щелкните узел v1.0.

  10. В правой области щелкните warehousecontrolled.asmx.

  11. В меню Действие выберите команду Обзор.

  12. В ControllerService щелкните Выполнить, а затем — Вызвать.

  13. Используя приложение отслеживания трассировки, начиная с этапа 7, просматривайте журнал на предмет исключений трассировки, указывающих, какой адаптер работает неправильно.

Данные в отчете устарели и не обновляются

Если есть подозрение, что данные в одном или нескольких отчетах устарели и не обновляются, или появляется следующее сообщение об ошибке: "Произошла ошибка при обработке отчета. (rsProcessingAborted)" — возможно, проблема связана с автоматическим обновлением хранилища данных.

Данные из операционных хранилищ (службы отслеживания рабочих элементов, управления версиями, построения и интеграции) передаются в реляционную базу данных (TfsWarehouse), а затем — в куб OLAP, по расписанию. Отчеты преобразуются для просмотра, обращаясь к кубу. По умолчанию служба Windows, которая называется планировщиком заданий Visual Studio Team Foundation Server, каждый час вызывает веб-службу хранилища для запуска обработки хранилища. Куб и отчеты должны быть доступны, так как этот процесс продолжается в фоновом режиме.

Прежде чем начать устранять неполадку, нужно стать членом группы безопасности Администраторы на уровне приложений и на уровне данных. База данных и кубы находятся на уровне данных, тогда как узел служб отчетов и сами отчеты находятся на уровне приложений.

Устранить эту проблему можно следующим образом:

  1. На уровне приложений выключить обработку ошибок Internet Explorer, чтобы видеть все сообщения.

  2. Убедиться, что запущена служба Windows, которая называется планировщиком заданий Visual Studio Team Foundation Server.

    Служба планировщика заданий Visual Studio Team Foundation Server сигнализирует веб-службе хранилища о необходимости сбора данных и обработки куба. Данные их всех операционных систем передаются в базу данных TfsWarehouse, а оттуда — в куб.

  3. Убедиться в обработке данных, переданных в хранилище.

  4. Обработать хранилище вручную.

  5. Просмотреть отчеты.

Следующие процедуры помогут решить эту проблему.

Выключение обработки ошибок в Internet Explorer

  1. Запустите Internet Explorer на уровне приложений.

  2. В меню Сервис выберите пункт Свойства обозревателя.

  3. В диалоговом окне Свойства обозревателя перейдите на вкладку Дополнительно.

  4. Снимите флажок Выводить подробные сообщения об ошибках HTTP.

Подтверждение работы службы планировщика заданий Visual Studio Team Foundation Server

  1. На уровне данных нажмите кнопку Пуск, укажите пункт Администрирование, а затем — Службы.

  2. В окне Службы найдите Планировщик заданий Visual Studio Team Foundation Server и убедитесь, что в столбце Состояние указано Работает.

    Если служба не запушена, щелкните правой кнопкой мыши Планировщик заданий Visual Studio Team Foundation Server ивыберите команду Пуск.

  3. Чтобы узнать время последнего вызова планировщиком заданий хранилища для обработки, перейдите в каталог %ProgramFiles%\Microsoft Visual Studio 2008 Team Foundation Server\TfsServerScheduler.

    В XML-файл, который находится в этом каталоге, записывается время последней попытки обработки хранилища.

Подтверждение передачи данных после обработки в хранилище

  1. Нажмите кнопку Пуск, последовательно укажите пункты Все программы, Microsoft SQL Server 2005, а затем — Среда SQL Server Management Studio.

  2. В диалоговом окне Соединение с сервером из списка Тип сервера выберите Компонент Database Engine и нажмите кнопку Соединить.

  3. В Среде Microsoft SQL Server Management Studio щелкните Создать запрос.

  4. Определите объем данных, переданных в куб данных, выполнив следующий запрос:

    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)
    

    Если данные отсутствуют или полностью скрыты, то проблема заключается либо в том, что планировщик заданий не сигнализирует об обработке, либо в сборе данных хранилищем.

Обработка хранилища вручную

  1. Войдите на уровень приложений.

  2. Откройте страницу по адресу https://localhost:8080/Warehouse/v1.0/warehousecontroller.asmx.

  3. Щелкните GetWarehouseStatus и нажмите кнопку Вызвать.

    Подождите, пока служба освободится. Она должна вернуть ProcessingAdapters (изменения схемы), ProcessingOlap (изменения схемы), ProcessingAdapters (отправка данных), ProcessingOlap (обработка куба) и после этого освободиться.

  4. Откройте страницу по адресу https://localhost:8080/Warehouse/v1.0/warehousecontroller.asmx.

  5. Щелкните Выполнить, а затем — Вызвать.

    Таким образом запустится обработка хранилища. Служба возвращает True или False в зависимости от того, начала ли она обработку (асинхронно).

  6. Чтобы контролировать обработку, можно повторить этап 3.

  7. Этап 2 можно повторить, чтобы проверить передачу данных, и если возникнут проблемы, обратиться к процедурам "Сбор данных об ошибках" из следующего подраздела, чтобы определить диапазон времени обработки.

Открытие отчетов

  1. В Сред. Командный обозреватель разверните узел Отчеты и найдите отчеты отдельных групп.

    Каждый отчет содержит время последней обработки хранилища в следующем формате:

    Отчет создан: дд/мм/гггг чч:мм:сс доменом\пользователем; Последнее обновление хранилища: дд/мм/гггг чч:мм:сс

    Данные должны быть актуальными, не старше одного часа.

  2. Если данным больше одного часа, отключите кэширование для этого отчета:

    1. В Internet Explorer откройте страницу по адресу http://<сервер>/Reports/.

    2. В диспетчере отчетов щелкните имя командного проекта, а затем — отчет.

    3. Откройте вкладку свойств и щелкните Выполнение.

    4. Выберите Не кэшировать временные копии этого отчета и нажмите кнопку Применить.

    5. Откройте вкладку Вид и просмотрите отчет.

Сбор данных об ошибках

  1. Просмотрите журнал событий приложений на предмет наличия в нем каких-либо ошибок, отмеченных красным значком "X", от источника "Хранилище". Ошибка и стек ошибок в этом журнале событий помогут определить проблему.

  2. Если все шаги приводят к ошибкам, сделайте трассировку, чтобы помочь специалисту службы поддержки или члену группы разработчиков продукта определить проблему.

  3. Для записи отладочного вывода воспользуйтесь таким инструментом, как DBMON.

  4. Откройте файл \Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\Warehouse\Web.Config в текстовом редакторе.

  5. В строке <add name="General" value="0" /> замените "0" на "4" и сохраните изменения.

См. также

Задачи

Устранение неполадок отчетов Team Foundation

Другие ресурсы

Использование средств командной строки Team Foundation Server

Хранилище данных сервера Team Foundation Server