COM+는 Windows Server에서 프로세스 덤프 파일 및 프로세스 종료의 자동 수집을 지원합니다.
- 아티클
- 2023. 07. 17.
이 문서의 내용
적용 대상: windows SDK for Windows 10
원래 KB 번호: 910904
소개
COM+ 구성 요소에서 비정상적으로 높은 호출 시간이 발생하는 경우 시스템에서 이벤트를 기록합니다. 이벤트 로그는 문제가 발생하는 COM+ 구성 요소를 식별합니다. 또한 이벤트 로그는 이 문서(910904)를 언급합니다. 시스템은 다음 작업 중 하나 또는 둘 다를 수행하도록 구성할 수 있습니다.
- 문제의 근본 원인 분석을 위해 프로세스 덤프 파일을 자동으로 수집합니다.
- 수동 개입 없이 문제를 복구하는 데 도움이 되도록 프로세스를 종료합니다.
시스템에서 덤프 파일을 수집한 후 디버그 진단 도구(DebugDiag )를 사용하여 문제를 설명하고 알려진 솔루션을 제공하는 보고서를 생성합니다.
기본 동작
다음과 같은 경우를 생각해볼 수 있습니다.
- COM+ 구성 요소의 호출 시간이 10분을 초과합니다.
- 이 장기 실행 COM+ 구성 요소를 호스트하는 애플리케이션이 실행되는 동안 Component Services MMC(Microsoft Management Console) 스냅인을 엽니다.
이 시나리오에서는 다음 이벤트가 애플리케이션 로그에 기록됩니다.
Event Type: information
Event Source Information: COM+
COM+ Event Category: (117)
Event ID: 782
Description: The average call duration exceeded 10 minutes.
If this is not the expected behavior, see Microsoft Knowledge Base Article 910904 in http://support.microsoft.com for detailed information about
how to use the COM+ AutoDump feature to automatically generate dump files and terminate the process if the problem recurs.
Server application ID:
Server application instance ID:
Server application name:
구성 옵션
중요
이 섹션에는 레지스트리 수정이 포함됩니다. 단계를 신중하게 수행합니다. 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 예방 조치로 레지스트리를 백업합니다. 레지스트리를 백업 및 복원하는 방법에 대한 자세한 내용은 Windows에서 레지스트리를 백업 및 복원하는 방법을 참조하세요.
장기 실행 COM+ 구성 요소가 검색되면 다음 작업 중 하나 또는 둘 다를 수행하도록 시스템을 구성할 수 있습니다.
- 프로세스 덤프 파일을 자동으로 수집합니다.
- 프로세스를 종료합니다.
값 이름 데이터 형식 설명 기본값
AverageCallThreshold REG_DWORD 적절한 작업이 수행되는 임계값(초)입니다. 0 DumpType REG_DWORD 0 = 전체 덤프 파일을 생성합니다. 1 = 미니덤프 파일 생성; 2 = 덤프 파일 없음 0 Terminate REG_DWORD 0 = 프로세스가 계속됩니다. 1 = 프로세스가 종료됩니다. 0 - 이렇게 하려면 다음 레지스트리 값을 사용합니다.
- 컴퓨터의 모든 COM+ 구성 요소에 대한 작업을 전역적으로 정의하려면 다음 레지스트리 키 아래에 구성 값을 추가합니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3\AutoDump - 전역 설정에 관계없이 특정 COM+ 구성 요소에 대해 수행할 작업을 정의하려면 다음 레지스트리 키 아래에 구성 값을 추가합니다.
HKEY_CLASSES_ROOT\AppId\{<YourAppID>}\AutoDump\{<YourCLSID>}
권장 사항
다음 콘텐츠는 전체 덤프 파일을 확인하고 분석하는 방법을 보여줍니다.
전체 덤프 파일 수집
COM+ 구성 요소에서 비정상적으로 높은 호출 시간이 발생하는 경우 전체 덤프 파일을 수집합니다. 예를 들어 다음 단일 레지스트리 값을 만듭니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3\AutoDump AverageCallThreshold = 300
특정 환경에 적합한 AverageCallThreshold 레지스트리 값을 선택하는 방법에 대한 자세한 내용은 고려 사항 섹션을 참조하세요.
마찬가지로 COM+ 애플리케이션에서 처리되지 않은 예외가 발생할 때 전체 덤프 파일을 수집합니다. 이렇게 하려면 각 COM+ 애플리케이션의 속성에 있는 덤프 탭에서 애플리케이션 오류에 이미지 덤프 사용 확인란을 선택합니다.
덤프 파일 분석
덤프 파일을 분석하려면 다음 단계를 수행합니다.
- 디버그 진단 도구(DebugDiag)를 다운로드하여 설치합니다.
- 다음 단계에 따라 디버그 진단 도구를 사용하여 덤프 파일에 대한 분석 보고서를 생성합니다.
- 시작 메뉴에서 DebugDiag 분석 애플리케이션을 실행합니다.
- 설정을 선택한 다음 기본 설정 탭을 선택합니다.
- 기호 검색 경로 필드의 Microsoft 공용 기호 서버 옵션이 선택되어 있는지 확인한 다음[ 뒤로]를 선택합니다.
- 기본 분석 \ CrashHangAnalysis 옵션을 선택합니다.
- 데이터 파일 추가를 선택합니다.
- 분석하려는 덤프 파일을 선택합니다.
- [분석 시작]을 선택합니다.
- 문제를 해결하려면 보고서의 권장 사항 섹션에 제공된 지침을 따릅니다. 보고서의 이 섹션에서는 다음과 같은 사항을 권장할 수 있습니다.
- 알려진 문제를 설명하는 Microsoft 기술 자료 문서로 안내할 수 있습니다.
- 수정하는 데 사용할 수 있는 정보를 애플리케이션 개발자에게 제공할 수 있습니다.
- 적절한 공급업체 또는 Microsoft 지원 후속 조치를 제안할 수 있습니다. Microsoft 지원 문의하여 더 많은 도움을 받으려면 보고서 파일을 제공하여 분석 프로세스 속도를 높입니다. 전체 덤프 파일도 필요할 수 있습니다.
고려 사항
다음은 고려해야 할 몇 가지 요소입니다.
AverageCallThreshold 레지스트리 값
300초 값은 대부분의 환경에 적합한 임계값입니다. 이상적인 값은 특정 환경에 따라 달라집니다. 가능한 한 빨리 작업을 수행하지만 합법적인 문제가 발생할 때만 수행되도록 하려면 문제가 있는 시나리오에서만 초과할 수 있는 가장 작은 값을 선택합니다.
TerminateProcess 레지스트리 값
호출 시간이 높을 때 프로세스를 종료하면 COM+ 구성 요소가 특정 문제에서 자동으로 복구하는 데 도움이 될 수 있습니다. 이는 고가용성이 중요한 환경에서 바람직합니다. 이 기능을 사용하는 경우 의도치 않게 프로세스를 종료하지 않도록 적절한 AverageCallThreshold 레지스트리 값을 선택합니다.
DumpType 레지스트리 값
미니덤프 파일을 더 빠르게 만들 수 있으며 전체 덤프 파일보다 디스크 공간이 적습니다. 그러나 필요한 데이터가 자주 없기 때문에 문제를 분석하는 데는 유용하지 않습니다. Dllhost.exe 프로세스에 대한 전체 덤프 파일의 일반적인 크기는 10MB(MB)에서 50MB 사이입니다. 실제 크기는 덤프된 프로세스의 작업 집합 크기에 따라 달라집니다. 파일은 일반적으로 몇 초 내에 생성됩니다.
덤프 파일 옵션
기본적으로 덤프 파일은 %systemroot%\system32\com\dmp 디렉터리에 저장됩니다. 적절한 COM+ 애플리케이션에 대한 이미지 덤프 디렉터리 상자 및 최대 덤프 이미지 수 영역 아래의 설정을 사용하여 위치 및 덤프 파일 수를 제어합니다.
통화 시간
COM+ 구성 요소의 호출 시간은 COM+ 구성 요소의 모든 인스턴스에 대한 실행 평균입니다. 호출 시간은 COM+ 시스템 애플리케이션에 의해 계산되며 구성 요소 서비스 MMC 스냅인의 상태 보기의 통화 시간(ms) 열에 표시됩니다.
'[Microsoft]' 카테고리의 다른 글
COM+ 개체를 사용하도록 설정하면 두 개의 DLL 호스트가 시작됩니다. (0) | 2023.11.03 |
---|---|
OLE 스레딩 모델의 설명 및 작업 (0) | 2023.11.03 |
동일한 스레드에서 HtmlHelp 함수를 호출한 후 CoInitializeEx 함수가 실패함 (0) | 2023.11.03 |
클라이언트 애플리케이션은 COM+ 구성 요소를 만들려고 할 때 간헐적으로 오류 메시지를 받을 수 있습니다. (0) | 2023.11.03 |
Win32_NetworkAdapterConfiguration 클래스는 PPPoE(이더넷을 통해 지점 간 프로토콜) 및 VPN(가상 사설망)에 대한 정보를 검색할 수 없습니다. (0) | 2023.11.03 |