Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 1개 있습니다.)

C# - (.NET Framework를 위한) Oracle.ManagedDataAccess 패키지의 성능 카운터 설정 방법

지난 글에서 .NET Core 버전의 Oracle.ManagedDataAccess에 대한 성능 카운터를 다뤘는데요,

C# - Oracle.ManagedDataAccess.Core의 성능 카운터 설정 방법
; https://www.sysnet.pe.kr/2/0/13000

이번에는 .NET Framework에서 실행되는 Oracle.ManagedDataAccess 패키지를 위한 성능 카운터 사용법을 설명해 보겠습니다.

사실, 전체적인 방법은 "C# - Oracle.ManagedDataAccess.Core의 성능 카운터 설정 방법" 글에서 설명한 것과 같습니다.

단지, 차이점이라면 (Core 버전과는 달리) Oracle.ManagedDataAccess 패키지의 경우 OracleConfiguration 타입을 제공하지 않습니다. 대신 app.config에 OracleConfiguration.PerformanceCounters에서 설정하는 것과 유사한 설정을 제공하므로, 다음과 같은 식으로 대체할 수 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    ...[생략]...
    <oracle.manageddataaccess.client>
        <version number="*">
            <settings>
                <setting name="PerformanceCounters" value="4095" />
            </settings>
        </version>
    </oracle.manageddataaccess.client>
</configuration>

또한, Core 버전의 경우 System.Diagnostics.PerformanceCounter 타입을 사용할 수 있도록 별도의 패키지 참조를 필요로 했지만, .NET Framework 환경에서는 System.dll에 PerformanceCounter 타입을 포함하고 있으므로 그 과정 자체가 필요 없습니다.




그다음, 이것을 성능 모니터링 도구에서 확인을 해야 하는데요, 이를 위해 역시 powershell 스크립트를 실행해야 합니다.

[설치]
register_odpm_perfmon_counters.ps1

[제거]
unregister_odpm_perfmon_counters.ps1

마찬가지로 위의 스크립트 파일도 nuget 패키지에 포함돼 있지만, 패키지 버전이 18.3.0 (어셈블리 버전 4.122.18.3) 버전 이하에는 없습니다. 따라서 그 상위의 버전을 설치하면 아래의 경로에서,

// Oracle.ManagedDataAccess 버전이 19.3.0인 경우

[솔루션 디렉터리]\packages\Oracle.ManagedDataAccess.19.3.0\PerfCounters

register_odpm_perfmon_counters.ps1 파일을 찾을 수 있습니다. 설치 후, 성능 모니터링 도구를 보면 다음과 같이 "ODP.NET, Managed Driver"라는 범주를 볼 수 있고,

odpnet_managed_perf_1.png

실행 중인 프로세스 중에 "성능 카운터를 활성화 + Oracle.ManagedDataAccess를 사용"한다면 위와 같이 "Instances of selected object"에 그 프로세스가 올라오게 됩니다.




참고로, 18.3.0 버전 이하에는 ps1 스크립트 파일만 nuget 패키지에 없는 것일 뿐 그냥 동일하게 상위 버전의 ps1 스크립트 파일을 실행해도 성능 카운터 연동에는 문제가 없습니다.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 3/15/2022]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 106  107  [108]  109  110  111  112  113  114  115  116  117  118  119  120  ...
NoWriterDateCnt.TitleFile(s)
11259정성태8/2/201719055.NET Framework: 669. 지연 서명된 어셈블리를 sn.exe -Vr 등록 없이 사용하는 방법
11258정성태8/1/201720348.NET Framework: 668. 지연 서명된 DLL과 서명된 DLL의 차이점파일 다운로드1
11257정성태7/31/201719955.NET Framework: 667. bypassTrustedAppStrongNames 옵션 설명파일 다운로드1
11256정성태7/25/201721874디버깅 기술: 90. windbg의 lm 명령으로 보이지 않는 .NET 4.0 ClassLibrary를 명시적으로 로드하는 방법 [1]
11255정성태7/18/201724448디버깅 기술: 89. Win32 Debug CRT Heap Internals의 0xBAADF00D 표시 재현 [1]파일 다운로드3
11254정성태7/17/201720841개발 환경 구성: 322. "Visual Studio Emulator for Android" 에뮬레이터를 "Android Studio"와 함께 쓰는 방법
11253정성태7/17/201721476Math: 21. "Coding the Matrix" 문제 2.5.1 풀이 [1]파일 다운로드1
11252정성태7/13/201719223오류 유형: 411. RTVS 또는 PTVS 실행 시 Could not load type 'Microsoft.VisualStudio.InteractiveWindow.Shell.IVsInteractiveWindowFactory2'
11251정성태7/13/201718670디버깅 기술: 88. windbg 분석 - webengine4.dll의 MgdExplicitFlush에서 발생한 System.AccessViolationException의 crash 문제 (2)
11250정성태7/13/201722347디버깅 기술: 87. windbg 분석 - webengine4.dll의 MgdExplicitFlush에서 발생한 System.AccessViolationException의 crash 문제 [1]
11249정성태7/12/201720060오류 유형: 410. LoadLibrary("[...].dll") failed - The specified procedure could not be found.
11248정성태7/12/201726584오류 유형: 409. pip install pefile - 'cp949' codec can't decode byte 0xe2 in position 208687: illegal multibyte sequence
11247정성태7/12/201720956오류 유형: 408. SqlConnection 객체 생성 시 무한 대기 문제파일 다운로드1
11246정성태7/11/201718924VS.NET IDE: 118. Visual Studio - 다중 폴더에 포함된 파일들에 대한 "Copy to Output Directory"를 한 번에 설정하는 방법
11245정성태7/10/201724661개발 환경 구성: 321. Visual Studio Emulator for Android 소개 [2]
11244정성태7/10/201724852오류 유형: 407. Visual Studio에서 ASP.NET Core 실행할 때 dotnet.exe 프로세스의 -532462766 오류 발생 [1]
11243정성태7/10/201721637.NET Framework: 666. dotnet.exe - 윈도우 운영체제에서의 .NET Core 버전 찾기 규칙
11242정성태7/8/201721213제니퍼 .NET: 27. 제니퍼 닷넷 적용 사례 (7) - 노후된 스토리지 장비로 인한 웹 서비스 Hang (멈춤) 현상
11241정성태7/8/201719844오류 유형: 406. Xamarin 빌드 에러 XA5209, APT0000
11240정성태7/7/201723691.NET Framework: 665. ClickOnce를 웹 브라우저를 이용하지 않고 쿼리 문자열을 전달하면서 실행하는 방법 [3]파일 다운로드1
11239정성태7/6/201724331.NET Framework: 664. Protocol Handler - 웹 브라우저에서 데스크톱 응용 프로그램을 실행하는 방법 [5]파일 다운로드1
11238정성태7/6/201721823오류 유형: 405. NT 서비스 시작 시 "Error 1067: The process terminated unexpectedly." 오류 발생 [2]
11237정성태7/5/201723472.NET Framework: 663. C# - PDB 파일 경로를 PE 파일로부터 얻는 방법파일 다운로드1
11236정성태7/4/201727245.NET Framework: 662. C# - VHD/VHDX 가상 디스크를 마운트하지 않고 파일을 복사하는 방법파일 다운로드1
11235정성태6/29/201721544Math: 20. Matlab/Octave로 Gram-Schmidt 정규 직교 집합 구하는 방법
11234정성태6/29/201719107오류 유형: 404. SharePoint 2013 설치 과정에서 "The username is invalid The account must be a valid domain account" 오류 발생
... 106  107  [108]  109  110  111  112  113  114  115  116  117  118  119  120  ...