본문 바로가기

ETL Tools/Oracle Data Integrator

odi master repository agent management

상용 물리적 스케쥴링 에이전트와 실행 에이전트 프로세스들이 떠있는 시스템이 죽었을때의 방책이 있을까?  

가설 1 : 논리적 에이전트와 연결되어 있는 물리적 에이전트를 변경 시켜주어 unexpected shutdown 이 후 작업은 
            다른 시스템에서 떠 있는 스케쥴링 에이전트를 통해 진행하도록 구현한다. 


다음의 테이블 정보를 보면 
/* 물리적 Agent */
SELECT * FROM SNP_AGENT;
/* 논리적 Agent */
SELECT * FROM SNP_LAGENT;
/* Context 별 Agent 연결 정보 */
SELECT * FROM SNP_ALLOC_AGENT;
/* Context */
SELECT * FROM SNP_CONTEXT;


위의 정보를 가지고 보면 SNP_ALLOC_AGENT 테이블에 연결정보를 바꾸면 되지 않을까 싶다. 

아직 테스트는 해보지 않은 상태입니다. 

* sc_agent 상용, 예비용에 띄어 놓은 상태 
1. 외부 프로세스에서 Agent 모니터링
2. 시스템 다운
3. 모니터링 감지
4. Data Update
5. 이후 작업 다른 시스템의 Agent 에서 작업

2010-08-31      Testing...

/* Master Repository 계정의 Agent 관련 테이블 */
select * from SNP_ALLOC_AGENT; -- context 별 논리적 물리적 Agent의 연결 정보를 저장
select * from SNP_LAGENT;  -- 논리적 Agent 정보를 저장
select * from SNP_AGENT; -- 물리적 Agent 정보를 저장

/* 연결 정보 확인 */
select a.AGENT_NAME, l.lAGENT_NAME, al.* from SNP_ALLOC_AGENT al, SNP_LAGENT l, SNP_AGENT a
where a.I_AGENT = al.I_AGENT
and l.I_LAGENT = al.I_LAGENT;

/* 특정 Context에 연결 되어 있는 물리적 Agent를 DB update 문을 사용하여 직접 변경 */
update SNP_ALLOC_AGENT 
set i_agent = 2000
where I_CONTEXT = 2999;

/*
SNP_AGENT
SNP_ALLOC_AGENT
SNP_CONTEXT
SNP_LAGENT
*/


Test 시나리오. 

문제점 발생 : Agentscheduler 가 예상치 않은 종료. 
솔루션 : Agent 재실행

2차 문제점 발생 : 종료된 Agent가 재실행 불가 -> 바로 다시 살릴 수 없는경우 ( Ex. 시스템이 죽었을 경우 ) 
솔루션 : 물리적 Agt를 변경하여 다른 서버에 살아있는 AgtScheduler 에 연결하여 이 후 일정은 예비 Agt를 통해 수행하도록 변경

현재까지 초기 테스트는 성공 한 상태이나 계속적인 테스트가 필요합니다. 

확인해 주세요 .