데이터 웨어하우스 문제 해결
업데이트: 2007년 11월
이 항목에서는 Team Foundation Server 데이터 웨어하우스에 대한 작업을 수행할 때 발생하는 다음과 같은 일반적인 문제에 대해 설명합니다.
작업 저장소에서 데이터 웨어하우스로의 데이터 이동이 중단된 경우
보고서의 데이터가 오래되었고 업데이트되지 않는 경우
이러한 정보와 각 오류 메시지에 대한 개별 도움말 항목의 정보를 검토한 후에도 문제를 해결할 수 없으면 Microsoft 웹 사이트에서 Visual Studio Team System 관련 포럼을 방문하십시오. 이러한 포럼은 다양한 문제 해결 항목에 대해 정보를 검색할 수 있는 스레드를 제공하고 사용자의 질문에 신속하게 응답할 수 있도록 모니터링됩니다.
작업 저장소에서 데이터 웨어하우스로의 데이터 이동이 중단된 경우
작업 저장소에서 데이터 웨어하우스로 데이터가 이동되지 않는다고 생각되면 다음과 같은 방법으로 문제를 해결할 수 있습니다.
데이터 이동이 실제로 중단되었는지 확인합니다.
오류가 발생한 어댑터를 찾습니다.
다음과 같은 절차를 수행하여 문제를 해결할 수 있습니다.
데이터 이동이 중단되었는지 확인하려면
다음 변경 중 하나 이상을 수행합니다.
소스 제어에 변경된 파일 체크 인
작업 항목 업데이트
테스트 결과 게시
시작을 클릭하고 모든 프로그램, Microsoft SQL Server 2005를 차례로 가리킨 다음 SQL Server Management Studio를 클릭합니다.
서버에 연결 대화 상자의 서버 유형 목록에서 데이터베이스 엔진을 선택한 다음 연결을 클릭합니다.
Microsoft SQL Server Management Studio에서 새 쿼리를 클릭합니다.
다음 쿼리를 실행하여 적절한 테이블에 변경 내용이 표시되는지 확인합니다.
select * from [work item] where id = [select max[id] from [work item] ]
변경 내용이 표시되지 않으면 데이터 이동이 중단된 것입니다.
오류가 발생한 어댑터를 찾으려면
텍스트 편집기에서 \Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\Warehouse\Web.Config를 엽니다.
<add name="General" value="0" /> 줄에서 "0"을 "3"으로 바꾸고 변경 내용을 저장합니다.
이렇게 변경하면 디버그 메시지가 활성화됩니다.
Team Foundation Server 응용 프로그램 계층 컴퓨터에서 시작, 실행을 차례로 클릭합니다.
열기 상자에 inetmgr을 입력합니다.
인터넷 정보 서비스 관리자의 왼쪽 창에서 Team Foundation Server 노드를 클릭합니다.
동작 메뉴에서 열기를 클릭합니다.
시스템 추적 이벤트를 수신하는 프로그램을 사용하여 응용 프로그램 계층에서 추적을 시작합니다.
.NET 추적 기능을 사용하여 추적 및 디버깅 기능을 제공하는 다양한 프리웨어 프로그램을 사용하거나 이러한 기능을 제공하는 사용자 지정 응용 프로그램을 만들어 사용할 수 있습니다. 추적 및 디버깅 기능을 사용하는 방법에 대한 자세한 내용은 Microsoft 웹 사이트에서 "Trace Listeners"를 참조하십시오.
캡처 메뉴에서 모든 캡처 명령을 선택합니다. 모든 DebugView 메시지를 볼 수 있도록 이 프로그램을 열어 둡니다.
인터넷 정보 서비스 관리자의 왼쪽 창에서 웨어하우스 노드를 확장한 다음 v1.0 노드를 클릭합니다.
오른쪽 창에서 warehousecontrolled.asmx를 클릭합니다.
작업 메뉴에서 찾아보기를 클릭합니다.
ControllerService에서 실행을 클릭한 다음 호출을 클릭합니다.
7단계에서 설명한 추적 모니터링 응용 프로그램을 사용하여 제대로 작동하지 않는 어댑터를 나타내는 추적 예외에 대한 로그를 검토합니다.
보고서의 데이터가 오래되었고 업데이트되지 않는 경우
하나 이상의 보고서에 포함된 데이터가 오래되었고 업데이트되지 않는다고 생각되거나 "보고서를 처리하는 동안 오류가 발생했습니다(rsProcessingAborted)."라는 오류 메시지가 나타나면 데이터 웨어하우스의 자동 업데이트 기능에 문제가 발생했을 수 있습니다.
작업 저장소(작업 항목 추적, 버전 제어, 빌드 및 통합 서비스)의 데이터는 관계형 데이터베이스(TfsWarehouse)에서 가져온 후 예약된 일정에 따라 OLAP 큐브로 가져오며 보고서는 큐브를 쿼리하여 렌더링됩니다. 기본적으로 Visual Studio Team Foundation Server 스케줄러라고 하는 Windows 서비스가 1시간 간격으로 웨어하우스 웹 서비스를 호출하여 웨어하우스 처리를 시작합니다. 이 프로세스가 백그라운드에서 진행되면 큐브와 보고서를 사용할 수 있습니다.
이 문제를 해결하려면 해당 사용자가 응용 프로그램 계층 및 데이터 계층에서 Administrators 보안 그룹에 속해 있어야 합니다. 데이터베이스와 큐브는 데이터 계층에 있고 보고 서비스 사이트와 보고서는 응용 프로그램 계층에 있습니다.
다음과 같은 방법으로 이 문제를 해결할 수 있습니다.
응용 프로그램 계층에서 모든 메시지를 볼 수 있도록 Internet Explorer의 오류 처리 기능을 끕니다.
Visual Studio Team Foundation Server 스케줄러라고 하는 Windows 서비스가 실행 중인지 확인합니다.
Visual Studio Team Foundation Server 작업 스케줄러 서비스는 웨어하우스 웹 서비스에 신호를 보내 데이터를 집계하고 큐브를 처리하게 합니다. 즉, 모든 작업 시스템의 데이터를 TfsWarehouse 데이터베이스로 가져온 다음 큐브로 보냅니다.
웨어하우스로 가져온 데이터가 제대로 처리되고 있는지 확인합니다.
웨어하우스를 수동으로 처리합니다.
보고서를 찾아봅니다.
다음과 같은 절차를 수행하여 문제를 해결할 수 있습니다.
Internet Explorer의 오류 처리 기능을 끄려면
응용 프로그램 계층에서 Internet Explorer를 시작합니다.
도구 메뉴에서 인터넷 옵션을 클릭합니다.
인터넷 옵션 대화 상자에서 고급 탭을 클릭합니다.
HTTP 오류 메시지 표시 확인란의 선택을 취소합니다.
Visual Studio Team Foundation Server 작업 스케줄러 서비스가 실행 중인지 확인하려면
데이터 계층에서 시작을 클릭하고 관리 도구를 가리킨 다음 서비스를 클릭합니다.
서비스 창에서 Visual Studio Team Foundation Server 스케줄러로 스크롤하여 상태 열에 시작됨이 표시되는지 확인합니다.
서비스가 아직 시작되지 않았으면 Visual Studio Team Foundation Server 스케줄러를 마우스 오른쪽 단추로 클릭한 다음 시작을 클릭합니다.
%ProgramFiles%\Microsoft Visual Studio 2008 Team Foundation Server\TfsServerScheduler를 찾아 스케줄러가 웨어하우스 처리를 가장 최근에 호출한 시간을 확인합니다.
이 디렉터리에 있는 XML 파일에는 웨어하우스 처리를 마지막으로 시도한 시간이 기록됩니다.
데이터를 웨어하우스로 가져왔는지 확인하려면
시작을 클릭하고 모든 프로그램, Microsoft SQL Server 2005를 차례로 가리킨 다음 SQL Server Management Studio를 클릭합니다.
서버에 연결 대화 상자의 서버 유형 목록에서 데이터베이스 엔진을 선택한 다음 연결을 클릭합니다.
Microsoft SQL Server Management Studio에서 새 쿼리를 클릭합니다.
다음 쿼리를 실행하여 데이터 큐브에 성공적으로 보내진 데이터의 양을 확인합니다.
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)
데이터가 없거나 데이터가 표시되는 속도가 너무 느리면 스케줄러가 처리 신호를 보내고 있지 않거나 웨어하우스에서 데이터를 집계하는 데 문제가 있는 것입니다.
웨어하우스를 수동으로 처리하려면
응용 프로그램 계층에 로그온합니다.
https://localhost:8080/Warehouse/v1.0/warehousecontroller.asmx를 엽니다.
GetWarehouseStatus를 클릭한 다음 호출을 클릭합니다.
서비스가 유휴 상태가 될 때까지 기다립니다. 그러면 ProcessingAdapters(스키마 수정), ProcessingOlap(스키마 수정), ProcessingAdapters(데이터 가져오기), ProcessingOlap(큐브 처리)이 반환된 후 다시 유휴 상태가 됩니다.
https://localhost:8080/Warehouse/v1.0/warehousecontroller.asmx를 엽니다.
실행을 클릭한 다음 호출을 클릭합니다.
그러면 웨어하우스 처리가 시작됩니다. 이 서비스는 처리를 시작했는지 여부에 따라 비동기적으로 True 또는 False를 반환합니다.
3단계를 반복하여 처리 작업을 모니터링합니다.
2단계를 반복하여 데이터가 제대로 이동되었는지 확인한 후, 문제가 있으면 다음 단원에서 설명하는 "오류 데이터를 수집하려면" 절차를 참조하여 처리 작업의 시간 범위를 확인합니다.
보고서를 열려면
팀 탐색기에서 보고서 노드를 확장하여 개별 팀 보고서를 찾아봅니다.
각 보고서에는 웨어하우스가 마지막으로 처리된 시간이 다음과 같은 형식으로 표시됩니다.
보고서 생성: yyyy/mm/dd hh:mm:ss(domain\user); 마지막 웨어하우스 업데이트: yyyy/mm/dd hh:mm:ss
데이터는 최신 상태여야 하며 마지막으로 업데이트된지 1시간이 넘으면 안 됩니다.
데이터가 마지막으로 업데이트된지 1시간이 넘은 경우에는 보고서 캐싱을 비활성화합니다.
Internet Explorer에서 http://<server>/Reports/를 엽니다.
보고서 관리자에서 팀 프로젝트 이름을 클릭한 다음 보고서를 클릭합니다.
속성 탭을 클릭한 다음 실행을 클릭합니다.
이 보고서의 임시 복사본을 캐시하지 않음을 선택한 다음 적용을 클릭합니다.
보기 탭을 클릭하여 보고서를 봅니다.
오류 데이터를 수집하려면
응용 프로그램 이벤트 로그를 검토하여 소스가 '웨어하우스'인 항목 중에 빨간색 X로 표시된 오류가 있는지 확인합니다. 이벤트 로그에서 오류와 오류 스택을 확인하면 문제를 식별하는 데 도움이 됩니다.
모든 단계에서 오류가 발생할 경우에는 지원 전문가 또는 제품 팀 담당자가 문제를 진단하는 데 도움이 될 수 있는 추적 정보를 수집합니다.
DBMON 같은 도구를 사용하여 디버그 출력 정보를 캡처합니다.
텍스트 편집기에서 \Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\Warehouse\Web.Config를 엽니다.
<add name="General" value="0" /> 줄에서 "0"을 "4"로 바꾸고 변경 내용을 저장합니다.