오류 보고 및 진단
이 항목에서는 프로세스 및 쿼리 오류를 처리하고 추가 문제 진단에 대한 덤프를 생성하기 위해 StreamInsight에서 제공하는 기능에 대해 설명합니다. Windows Vista 및 Windows Server 2008 이상의 운영 체제에서 StreamInsight는 오류 보고 및 덤프 생성에 Windows 오류 보고를 사용합니다. Windows XP 및 Windows Server 2003 운영 체제에서 StreamInsight는 오류 보고 및 덤프 생성에 .NET 3.5에 포함된 Dr. Watson 버전(DW20.exe 및 DWWin.exe)을 사용합니다.
StreamInsight는 이러한 표준 Windows 운영 체제 도구를 오류 보고 및 덤프 생성에 사용하므로, 사용자가 Windows 운영 체제 수준에서 설정되는 오류 보고 기능을 사용하는 데 동의해야 합니다. 사용자가 운영 체제 수준에서 오류 보고를 사용하도록 동의하면 클라이언트 응용 프로그램에 대한 오류 보고서 및 덤프가 자동으로 Microsoft에 전송되며 로컬 서버에서는 덤프가 제거됩니다. 문제 해결용으로 덤프를 확인하려면 오류 보고를 사용하지 않도록 설정해야 합니다. StreamInsight 응용 프로그램을 실행 중인 서버의 관리자에게 문의하여 해당 컴퓨터에서 오류 보고가 사용하도록 설정되어 있는지 확인하십시오. 다음 섹션에 설명하는 바와 같이 설정을 변경합니다.
덤프 생성
덤프는 다음의 두 가지 시나리오에서 StreamInsight 응용 프로그램에 대해 생성됩니다.
프로세스 오류
StreamInsight는 포함된 서버 또는 호스팅된 서버 구성에서 배포할 수 있습니다. 이 두 구성 중 하나에서 처리되지 않은 전역 예외가 발생하는 경우의 오류는 CLR 응용 프로그램에서 발생하는 오류와 유사하며 Windows 운영 체제에서는 프로세스 덤프를 생성합니다. 사용자 정의 함수 또는 연산자가 개별 스레드에 대해 호출한 모듈에서 발생하는 처리되지 않은 예외 또는 어댑터에서 발생하는 처리되지 않은 예외를 예로 들 수 있습니다.
쿼리 오류
StreamInsight 쿼리에서 예외가 발생한다고 해서 포함된 서버 구성이나 호스팅된 서버 구성에서 반드시 StreamInsight 프로세스 오류가 발생하는 것은 아닙니다. 예를 들어 사용자 정의 함수나 연산자에서 예외가 발생했다고 가정해 보겠습니다. 다음 예와 같이 디버그 덤프를 프로그래밍 방식으로 생성하기 위해 StreamInsight 진단 API를 사용하여 응용 프로그램 쿼리를 계측할 수 있습니다. 그러나 Windows XP 및 Windows Server 2003의 경우 덤프가 생성되도록 하면 프로세스가 실패합니다. Windows Vista 및 Windows Server 2008 이상에서는 이러한 문제가 발생하지 않습니다.
Server server = Server.Create(...); // or Server.Connect(...) if this is a client application connecting to a server.
...
// Generate error reports when a query fails.
DiagnosticSettings settings = new DiagnosticSettings(DiagnosticAspect.GenerateErrorReports, DiagnosticLevel.Always);
server.SetDiagnosticSettings(new Uri("cep:/Server"), settings);
주의 |
---|
디버그 덤프 파일에는 중요한 정보가 들어 있을 수 있습니다. 중요한 정보를 보호하려면 ACL(액세스 제어 목록)을 통해 파일에 대한 액세스를 제한하거나 파일을 액세스가 제한된 폴더에 복사합니다. 디버그 파일을 Microsoft 지원 서비스에 보내기 전에 중요한 정보나 기밀 정보를 제거하는 것이 좋습니다. |
오류 보고
기본적으로 오류 보고서는 오류 보고 사용자 동의를 설정한 경우 Microsoft로 전송됩니다.
Windows Vista 및 Windows Server 2008 이상
프로세스 오류
Windows 응용 프로그램은 StreamInsight 서버를 포함할 수 있습니다. 이 응용 프로그램의 실행 파일에 오류가 발생하면 오류 보고 사용자 동의 설정에 따라 오류를 Microsoft로 보낼 것인지가 결정됩니다. 오류 원인에 따라 StreamInsight 호출 스택 및 기타 정보가 오류 덤프에 포함될 수 있습니다. StreamInsight에는 이 프로세스에 개입하는 계측 기능이 없습니다.
쿼리 오류
쿼리 오류 보고 과정에서도 앞서 프로세스 오류 보고 과정에서 설명한 것과 같은 동의 정책을 따릅니다. 그러나 앞서 설명한 것처럼 쿼리 오류에 대해 덤프를 생성하도록 프로그래밍 방식으로 설정한 경우에는 오류가 발생한 로컬 서버에 덤프와 오류를 보관할 수 있습니다.
이렇게 하려면 다음 레지스트리 키 설정을 사용하여 StreamInsight에 대한 자동 오류 보고를 해제해야 합니다.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\Consent]
"StreamInsightDump"=dword:00000001
프로세스 오류 및 쿼리 오류 시나리오 둘 다에 대해 제어판에서 문제 보고서 및 해결 방법을 확인하여 오류를 검사할 수 있습니다. Windows 7 및 Windows Server 2008 R2에서 오류를 확인하려면 제어판에서 관리 센터, 유지 관리, 안정성 기록 보기, 문제 보고서 모두 표시를 차례로 클릭합니다. 오류는 응용 프로그램 이름(예: MyApplication_name.exe) 또는 StreamInsightHost.exe에 대해 보고됩니다.
Windows XP 및 Windows 2003
오류 보고를 해제하여 덤프를 로컬 호스트에 저장하려면 Microsoft 지원 문서의 지침을 따르십시오. 그러면 오류 보고서는 대기되며 %USERPROFILE%\Local Settings\Application Data\PCHealth\ErrorRep 또는 %SYSTEMROOT%\PCHEALTH\ErrorRep\QSignoff에 저장됩니다.
오류 보고 인터페이스 액세스 권한이 있는 관리자는 큐에서 오류를 확인한 다음 사례별로 Microsoft에 전송할 수 있습니다. 운영 체제에서는 큐의 항목 수에 대한 최대값 제한이 유지됩니다. 이 제한은 시스템 매개 변수에 따라 다릅니다. 이 제한을 초과하면 운영 체제에서 새 오류 보고서를 더 이상 큐에 넣지 않습니다. 따라서 관리자는 추가로 조사해야 하는 오류가 있는지 큐를 정기적으로 검토하는 것이 좋습니다. 필요한 경우 dw20.exe를 호출해 큐를 플러시할 수 있습니다. 이렇게 하지 않으면 보고서는 계속 유지됩니다.