닷넷 배치 프로세스 모니터링

이 장에서는 닷넷 버전의 제니퍼 에이전트를 이용하여 배치(Batch) 작업을 모니터링하는 방법을 설명한다.

제니퍼에서 구현되는 배치 모니터링의 개념 및 자바에서의 설치방법은 ”Batch JOB Monitoring” 문서를 참고한다.

MasterAgent 설치 및 실행

conf 파일 설정

”[에이전트 설치 폴더]\conf\app_pool.conf” 파일을 복사해서 “batchjob_master.conf” 파일을 생성한다. batchjob_master.conf 파일을 메모장에서 열고, 제니퍼 서버 주소와 마스터 에이전트임을 알리는 설정을 추가한다.

udp_server_host = [제니퍼 서버 주소]
MASTER_AGENT = true

마스터 에이전트 실행

마스터 에이전트 실행파일은 JENNIFER와 함께 설치되므로 별도의 설치작업은 필요없고 단순히 아래의 경로에 제공되는 모듈을 실행하면 된다.

.NET 1.1: [에이전트 설치 폴더]\bin\MasterAgent.Clr10.exe

.NET 2.0 ~ 3.5: [에이전트 설치 폴더]\bin\MasterAgent.Clr20.exe

.NET 4.0 이상: [에이전트 설치 폴더]\bin\MasterAgent.Clr40.exe

SubAgent 설치 및 실행

서브 에이전트는 모니터링 해야 할 대상을 의미하는데, 제니퍼 에이전트가 활성화 되는 배치 프로세스(exe)가 이에 해당한다.

conf 파일 설정

서브 에이전트가 종속될 마스터 에이전트의 conf 파일을 복사해서 새롭게 conf 파일을 생성하고 서브 에이전트 임을 명시하기 위해 다음의 설정을 추가한다.

[예: youragent.conf]
SUB_AGENT = true

배치 프로세스에 conf 파일 연결

모니터링하려는 배치 프로세스의 실행 파일 경로가 다음과 같다고 가정할 때,

C:\BatchJobs\DailyWorker.exe

해당 프로세스 명에 ”.config” 파일을 연결하여 conf 폴더에 새롭게 파일을 생성한다.

[에이전트 설치 폴더]\conf\DailyWorker.exe.config

파일의 내용은 아래와 같이 이전에 서브 에이전트 용으로 만들어 둔 conf (예: youragent.conf) 를 지정한다.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appSettings>
<add key="Jennifer.FileName" value="youragent.conf" />
</appSettings>
</configuration>

사용자 정의 메서드 프로파일링 설정

일반적으로 배치 프로세스에서는 사용자가 정의한 메서드를 트랜잭션 단위로 여기게 된다. 따라서, ”닷넷 메서드 프로파일링“에서 설명한 방법에 따라 ”[txserver]” 절을 별도로 구성해야 한다.

또한, 배치 프로세스의 경우 반드시 ”[batchjob]” 절을 정의하고 해당 응용 프로그램의 Main 함수를 정의해 줘야 한다.

예를 들어 사용자 코드가 다음과 같이 정의된 경우,

namespace BatchJob1
{
    class Program
    {
        static void Main(string[] args)
        {
             DoBatchJob();
        }
        
        void DoBatchJob()
        {
        }
    }
}

만약, DoBatchJob 이 실제 배치 작업을 처리하는 메서드이고 txserver 로 모니터링해야 할 대상이라면 profiler.ini 파일에는 다음과 같이 설정해 주어야 한다.

[batchjob.프로세스명]
BatchJob1.Program.Main=1
[txserver.프로세스명]
BatchJob1.Program.DoBatchJob=1

제니퍼 에이전트 환경변수 설정

배치 프로세스가 프로파일링되기 위해서는 “JENNIFER_PROFILE” 이라는 별도의 환경 변수를 지정해야 한다. 만약 사용자의 배치 프로세스 명이 “DailyWorker.exe”이고, 마스터 에이전트의 프로세스 명이 "MasterAgent.Clr40.exe"인 경우 다음과 같이 환경 변수를 등록한다.

환경 변수 이름: JENNIFER_PROFILE
값: dailyworker.exe;masteragent.clr40.exe

프로세스 명은 반드시 소문자로 지정해야 한다.

배치 프로세스가 여러 개인 경우 세미콜론(;)을 구분자로 해서 다음과 같이 지정하는 것이 가능하다.

환경 변수 이름: JENNIFER_PROFILE
값: dailyworker.exe;weeklyworker.exe;monthlyworker.exe;masteragent.clr40.exe

설정을 마치고, 해당 배치 프로세스를 실행하면 정상적으로 모니터링이 이뤄진다.

에이전트 모니터링 해제 / 제거

제니퍼 에이전트가 설치된 상태에서, 배치 프로세스에 대한 모니터링만을 해제하고 싶다면 환경 변수에서 “COR_ENABLE_PROFILING” 값을 “0”으로 변경하면 된다. (또는 “JENNIFER_PROFILE” 로 설정된 경우라면, 프로세스 명을 빼거나 JENNIFER_PROFILE 환경 변수 자체를 지우면 된다.)

만약, 제니퍼 에이전트까지 모두 제거하고 싶다면 현재 모니터링 중인 배치 프로세스를 모두 종료하고 “[에이전트 설치 폴더]/uninstall_Jennifer.bat”을 관리자 권한으로 실행한 후, 설치 폴더를 수동으로 삭제해 준다.