본문 바로가기

ETL Tools/Oracle Data Integrator

[ODI 11g] OPMN로 Standalone Agent 관리

설명: StandAlone Agent의 프로세스를 관리를 위해 OPMN(Oracle Process Monitoring and Notification Server)을 설치하고 Agent를 추가하는 작업을 진행

 

기능:     Process Monitoring – Agent 실행 상태 확인

Logging – 상태 이상 발생시 자동 로그 관리

Failover – Process 중지 시 자동 재 실행

 

l  OPMN ODI 설치 시에는 포함되어 있지 않으므로, 별도의 Oracle 제품을 설치하여 사용하여야 한다.

l  Oracle Application Server 설치 시에는 OPMN이 포함되어 있고 Oracle Product도 일부 포함하고 있는 제품이 있음

l  이미 OPMN이 설치되어 있는 경우는 OPMN 설치 순서 Skip

l  OPMN이 포함되어 있는 Oracle 제품

n  EPM 11.1.2, Web Tier and etc

l  Web Tier는 설치 시 OPMN만 설치 가능

Screenshot for Step

구성 순서

1.      OPMN 설치

2.      Agent 설정

3.      환경 변수 설정

4.      odi_opmn_addAgent.bat 파일 수정

5.      agentcreate.properties 파일 수정

6.      OPMN 시작

7.      Add agent

8.      Start agent (OPMN)

9.      Agent connection test

l  테스트는 Windows XP에서 수행되어 bat파일을 사용하였고, Linux 일 경우는 sh파일 사용

 

    OPMN 설치

A.     Download Web Tier 11.1.1.2.0 (설치 풀 버전)

B.      Install Oracle HTTP Server(OPMN) only

Web Tier Installation Guide: http://download.oracle.com/docs/cd/E14571_01/doc.1111/e14260/toc.htm

C.      Stop OPMN
(
시작-프로그램-Web Tier instance~- Stop Oracle Process Manager
시작-프로그램-Web Tier instance~- Stop Oracle HTTP Server)

D.     Download & patch Web Tier 11.1.1.3.0 (latest version)

 

    Agent 설정

A.     Install ODI 11g (ODI 문서 참조)

B.      Create Repository (ODI 문서 참조)

C.      Create Agent (ODI 문서 참조)

D.     Odiparams.bat 파일 수정
REM #
REM # Connection retry parameters
REM #
set ODI_CONNECTION_RETRY_COUNT=3
set ODI_CONNECTION_RETRY_DELAY=7000

                         i.         ODI_CONNECTION_RETRY_DELAY: 재시도할 시간(MicroSecond)

                        ii.         ODI_CONNECTION_RETRY_COUNT: 재시도 횟수

E.      Connection test

 

    환경 변수 설정

u  Win: 시스템 -> 고급 탭 -> 환경변수

u  Linux: profile 수정 or Script 추가

A.     JAVA_HOME 설정

                         i.         JAVA 버전에 따라 OPMN이 지원되지 않을 수 있으므로 최신 버전을 사용하는 것을 추천 (for example - jdk 1.6.0_23)

B.      ODI_JAVA_HOME 설정

                         i.         JAVA_HOME과 같은 경로

 

    odi_opmn_addAgent.bat 파일 수정

A.     ~/Oracle_ODI1/oracledi/agent/bin/odi_opmn_addAgent.bat 파일에 변수 값 설정
rem if "%ODI_HOME%" == "" set ODI_HOME=.. 
rem if "%OPMN_HOME%" == "" set OPMN_HOME=.. 
rem if "%INSTANCE_HOME%" == "" set INSTANCE_HOME=.. 

if "%ODI_HOME%" == "" set ODI_HOME=C:\WEBTIER_HOME\Oracle_WT1\odi_standalone\oracledi\agent 
if "%OPMN_HOME%" == "" set OPMN_HOME=C:\WEBTIER_HOME\Oracle_WT1 
if "%INSTANCE_HOME%" == "" set INSTANCE_HOME=C:\WEBTIER_HOME\Oracle_WT1\instances\instance1 

set CLASSPATH=%ODI_HOME%\lib\odi-standalone-agent.jar;%OPMN_HOME%\opmn\lib\opmneditor.jar 
java -classpath %CLASSPATH% oracle.odi.AddAgentToOpmn %* 
CALL %INSTANCE_HOME%\bin\opmnctl reload 
:ENDCOMMAND 

                         i.         ODI_HOME: ODI 설치 폴더아래에 있는 Agent의 폴더 경로
~/Oracle_ODI1/oracledi/agent

                        ii.         OPMN_HOME: OPMN이 설치된 폴더 경로
~/Oracle_WT1

                       iii.         INSTANCE_HOME: OPMN 인스턴스 폴더 경로
~/Oracle_WT1/Instances/Instance1

 

    agentcreate.properties 파일 수정

A.     ~/Oracle_ODI1/oracledi/agent/bin/agentcreate.properties 파일에 변수 값 설정
# Use / as path seperator to  specify path in  Unix as well as Windows.
ORACLE_ODI_HOME=C:/oracle/Middleware/Oracle_ODI1
INSTANCE_HOME=C:/oracle/Middleware/Oracle_WT1/instances/instance1
COMPONENT_TYPE=ODIAGENT
COMPONENT_NAME=AGT11
ODI_MASTER_DRIVER=oracle.jdbc.OracleDriver
ODI_MASTER_URL="jdbc:oracle:thin:@192.168.0.12:1521:widetns"
ODI_MASTER_USER=odi_mst_rep
ODI_MASTER_ENCODED_PASS=g2yHxMSwq4rPER7leJIkGJRg
ODI_SECU_WORK_REPO=WORKREP1
ODI_SUPERVISOR_ENCODED_PASS=fDyaLjkz6yyfEUxYb1nr
PORTNO=20910
JAVA_HOME=C:/Progra~1/Java/jdk1.6.0_24
ORACLE_OPMN_HOME=C:/oracle/Middleware/Oracle_WT1
JMXPORTNO=21910

u  경로 구분자는 Windows, Linux 모두 ‘\’가 아닌 ‘/’로 통일함

                         i.         ORACLE_ODI_HOME: ODI 설치 경로
~/Oracle_ODI1

                        ii.         INSTANCE_HOME: OPMN 인스턴스 폴더 경로
~/Oracle_WT1/Instances/Instance1

                       iii.         COMPONENT_TYPE: 프로세스 타입 (should be odiagent)

                       iv.         COMPONENT_NAME: Topology에서 명시된 물리적 Agent (OPMN에서 사용)

                        v.         ODI_MASTER_DRIVER: 마스터 리포지토리 정보(odiparams 참고)

                       vi.         ODI_MASTER_URL: 마스터 리포지토리 정보(odiparams 참고)

                      vii.         ODI_MASTER_USER: 마스터 리포지토리 정보(odiparams 참고)

                     viii.         ODI_MASTER_ENCODED_PASS: 마스터 리포지토리 정보(odiparams 참고)

                       ix.         ODI_SECU_WORK_REPO: 워크 리포지토리 명(odiparams 참고)

                        x.         ODI_SUPERVISOR_ENCODED_PASS: ODI 로그인 패스워드 정보(odiparams 참고)

                       xi.         PORTNO: Agent port 번호

                      xii.         JAVA_HOME: JAVA 설치 폴더

                     xiii.         ORACLE_OPMN_HOME: OPMN 설치 폴더
~/Oracle_WT1

                     xiv.         JMXPORTNO: Agent JMX port 번호

 

    OPMN 시작

A.     Start Oracle Process Manager
(
시작-프로그램-Web Tier instance~- Start Oracle Process Manager)

B.      Start Oracle HTTP Server
(
시작-프로그램-Web Tier instance~- Start Oracle HTTP Server)

 

    Add agent

A.     Run odi_opmn_addagent.bat (command line)

odi_opmn_addagent.bat “agentcreate.properties”

 

    Start agent

A.     opmnctl.bat을 사용하여 Agent OPMN에 추가

opmnctl.bat startproc ias-component=AGT11

 

 

    Connection test

A.     Topology에서 Agent 연결 테스트 성공 할 때까지!

 

# Agent 상태 확인

커맨드 창에서 확인 가능

 

# delete Agent

커맨드를 통해 실행

odi_opmn_deleteagent.sh <INSTANCE_HOME> <OPMN_HOME> <PROCESS_NAME(ias-component name)>

 

 

Trouble Shooting

 

문제 발생: Add agent

오류 코드:
C:\oracle\Middleware\Oracle_WT1\opmn\lib>java -classpath %CLASSPATH% oracle.odi.AddAgentToOpmn %*

Exception in thread "main" java.lang.NoClassDefFoundError: \lib\odi-standalone-agent/jar;

C:\oracle\Middleware\Oracle_WT1\opmn\lib\opmneditor/jar

Caused by: java.lang.ClassNotFoundException: \lib\odi-standalone-agent.jar;C:\oracle\Middleware\Oracle_WT1\opmn\lib\opmneditor.jar

오류 원인: 변수 설정 이상

해결 방법: odi_opmn_AddAgent 파일 변수 설정

 

문제 발생: Add agent

오류 코드:

java.lang.NoClassDefFoundError: Files\Java\jdk1/6/0_23\lib\tools/jar
Caused by: java.lang.ClassNotFoundException: Files\Java\jdk1.6.0_23\lib\tools.jar
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)

오류 원인: JDK PATH 설정 이상

해결 방법: JAVA_HOME 설정 시 “~” 사용

C:\Program Files\Java\jdk1.6.0_23

-> C:\Progra~1\Java\jdk1.6.0_23

 

문제 발생: OPMN 실행

오류 코드:

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version
number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14)

오류 원인: JAVA Version이 낮음

해결 방법: JAVA 최신 버전 설치 후 환경 변수 설정

 

문제 발생: Add agent

오류 코드:

C:\oracle\Middleware\Oracle_WT1\opmn\lib>java -classpath %CLASSPATH% oracle.odi.

AddAgentToOpmn %*

파일을 읽는 오류 발생

다음에 대한 값을 제공하십시오.ORACLE_ODI_HOME

오류 원인: agentcreate.properties 변수 설정 불량

해결 방법: agentcreate.properties 수정