성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] VT sequences to "CONOUT$" vs. STD_O...
[정성태] NetCoreDbg is a managed code debugg...
[정성태] Evaluating tail call elimination in...
[정성태] What’s new in System.Text.Json in ....
[정성태] What's new in .NET 9: Cryptography ...
[정성태] 아... 제시해 주신 "https://akrzemi1.wordp...
[정성태] 다시 질문을 정리할 필요가 있을 것 같습니다. 제가 본문에...
[이승준] 완전히 잘못 짚었습니다. 댓글 지우고 싶네요. 검색을 해보...
[정성태] 우선 답글 감사합니다. ^^ 그런데, 사실 저 예제는 (g...
[이승준] 수정이 안되어서... byteArray는 BYTE* 타입입니다...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <div style='font-family: 맑은 고딕, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>COM+ 서버 모니터링</div><br /> <br /> 당연한 이야기이겠지만, IIS 서버 모니터링이 가능한 것처럼 "제니퍼 닷넷"은 COM+ 서버도 모니터링이 가능합니다.<br /> <br /> 구성요소 관리자에서 볼 수 있는 COM+ 패키지는 다음과 같이 2가지 유형이 있는데요.<br /> <br /> <ol> <li>라이브러리 활성</li> <li>서버 활성</li> </ol> <br /> 1번의 경우에는 해당 DLL이 대상 EXE 프로세스에서 활성화되기 때문에 모니터링이 DLL 단위로 되는 것은 아니고, 호출 측의 EXE 프로세스를 모니터링하는 것으로 자연스럽게 해결됩니다. 즉, IIS 서버의 w3wp.exe에서 라이브러리 활성화 COM+를 사용한다면 w3wp.exe를 모니터링하는 것으로 COM+ 개체에서 실행되는 SQL 쿼리 등이 함께 모니터링이 되는 것입니다.<br /> <br /> 문제는 2번의 경우인데요. 서버 활성화로 된 경우에는 해당 COM+ 개체가 dllhost.exe라는 Surrogate 프로세스에서 활성화가 되기 때문에 별도로 IIS 서버 모니터링하는 것과 동일한 방식으로 dllhost.exe에 대한 설정을 해줘야 합니다.<br /> <br /> 일단, 설치는 되었다고 가정하고 동작하는 것을 한번 볼까요? ^^<br /> <br /> <hr style='width: 50%' /><br /> <br /> 우선, COM+를 사용하는 측에서의 모니터링은 아래에서 알아봤는데요.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; width: 800px; background-color: #fbedbb; overflow-x: scroll; font-family: Consolas, Verdana;' > COM+ 호출 모니터링 및 누수 확인 ; <a target='_tab' href='/2/0/881'>http://www.sysnet.pe.kr/2/0/881</a> </pre> <br /> dllhost.exe를 모니터링하는 것은 일반적인 웹 애플리케이션을 모니터링하는 것과 동일하게 다음과 같은 화면으로 확인할 수 있습니다.<br /> <br /> <img onclick='toggle_img(this)' class='imgView' alt='complus_server_monitor_1.png' src='/SysWebRes/bbs/complus_server_monitor_1.png' /><br /> <br /> 거의 IIS 웹 애플리케이션을 모니터링하는 것과 별반 다를 바가 없다는 것을 볼 수 있습니다.<br /> <br /> 다음은 X-View의 상세 화면입니다.<br /> <br /> <img onclick='toggle_img(this)' class='imgView' alt='complus_server_monitor_2.png' src='/SysWebRes/bbs/complus_server_monitor_2.png' /><br /> <br /> 웹 애플리케이션의 서비스 명은 URL로 나타나지만, COM+ 서버의 서비스 명은 "EntLibServerApp.MyComponentServer.GetApp"와 같이 "EntLibServerApp.MyComponentServer" 네임스페이스를 포함한 클래스 명과 "GetApp"라는 메서드 명으로 이뤄집니다.<br /> <br /> 여기서 재미있는 것은 "GUID"라는 값인데요. 웹 애플리케이션만을 모니터링하는 화면에서는 이 값을 볼 수 없지만, 이렇게 COM+와 연동하는 경우에는 이 값이 큰 역할을 하게 됩니다. 즉, "호출하는 측"과 "호출되는 측"에 대해 동일한 ID를 부여함으로써 X-View에서 연동 서비스들을 같이 확인하는 것이 가능합니다.<br /> <br /> X-View에서 이를 확인해 볼까요?<br /> <br /> <img onclick='toggle_img(this)' class='imgView' alt='complus_server_monitor_3.png' src='/SysWebRes/bbs/complus_server_monitor_3.png' /><br /> <br /> 위의 화면과 같이 연동된 호출 서비스를 확인하려면 "GUID" 라디오 상자 값을 선택하고 X-View를 봐야 하는데, 위의 경우에는 "점" 하나에 대해서 연동된 호출 수가 5개가 있다는 것을 보여줍니다. 즉, 해당 GUID 값을 타고 호출된 서비스들이 5개가 있다는 것인데요.<br /> <br /> 해당 점을 마우스로 드래그해서 상세화면에서 확인하면,<br /> <br /> <img onclick='toggle_img(this)' class='imgView' alt='complus_server_monitor_4.png' src='/SysWebRes/bbs/complus_server_monitor_4.png' /><br /> <br /> 위와 같이 하나의 점에 해당하는 5개의 호출을 확인할 수 있습니다. 예제에서 보여지는 호출 관계는 다음과 같습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; width: 800px; background-color: #fbedbb; overflow-x: scroll; font-family: Consolas, Verdana;' > 1. ComPlusServerTest.aspx에서 SecondEntLibServerApp.MySecondComponent.TestMethod 호출 2. ComPlusServerTest.aspx에서 EntLibServerApp.MyComponentServer.GetApp 호출 3. ComPlusServerTest.aspx에서 EntLibServerApp.MyComponentServer.MethodChainTest 호출 3.1 EntLibServerApp.MyComponentServer.MethodChainTest에서 SecondEntLibServerApp.MySecondComponent.TestMethod 호출 </pre> <br /> 정리해 보면, aspx 웹 페이지에서 COM+를 사용하는 것과, COM+에서 또 다른 COM+를 호출하는 것까지 모니터링이 되어 전체적으로 하나의 호출 Context에서 실행된 원격 메서드들을 모두 모니터링하는 것이 가능합니다.<br /> <br /> 이 정도면, "닷넷 모니터링 솔루션"으로써 손색이 없겠죠! ^^<br /> </div>
첨부파일
스팸 방지용 인증 번호
1117
(왼쪽의 숫자를 입력해야 합니다.)