일반적인 제니퍼 에이전트 설치

제니퍼 에이전트를 일반적인 방법으로 설치하는 방법을 설명한다. 제니퍼 에이전트 설치는 사전설치(pre-installation), 사후설치(post-installation) 그리고 설치확인 작업으로 구성되어 있다.

pre-installation 에서의 작업

제니퍼 에이전트 설치에 앞서 구성설정에 필요한 파일을 찾거나 생성하는 작업을 한다.

lwst를 build한다.

애플리케이션의 소스 코드를 수정하지않고 성능 데이터 수집에 필요한 추적 코드와 프로파일 정보 추출 코드를 자바 애플리케이션을 구성하는 클래스에 삽입할수 있어야 한다. 제니퍼에서는 이를 LWST라고 부른다. Application Server 에서 사용중인 JAVA의 rt.jar(sun 과 ibm 1.6), core.jar(ibm 1.4,1.5) , vm.jar(ibm1.5) 파일을 참조하여 lwst.jdk.jar 파일을 생성한다.

JDK 버전이 1.5 이상인 경우
lwst40.sh jdk15 $JAVA_HOME/jre/lib/rt.jar
JDK 버전이 1.5 미만인 경우
lwst40.sh safe $JAVA_HOME/jre/lib/rt.jar

해당 시스템에 맞는 JNI library 파일을 찾는다.

$JENNIFER_AGENT_HOME/jni/OS 디렉토리에 있는 파일을 테스트하여 해당 시스템에 맞는 library파일을 $JENNIFER_AGENT_HOME 디렉토리에 복사한다.

에이전트 설정을 한다.

에이전트에서 에이전트명, 제니퍼 서버의 IP/PORT들을 환경에 맞게 설정한다.

post-installation 에서의 작업

제니퍼 에이전트가 설치될 WAS(java)에서 해당 WAS에 맞게 옵션을 설치하고 파일을 복사하는 작업을 한다.

Java Application Server의 자바옵션에 설정을 추가한다.

-Djennifer.config=/home/jennifer/agent/w11.conf 
 -Xbootclasspath/p:/home/jennifer/agent/lwst.jdk.jar:/home/jennifer/agent/lwst.boot.jar:/home/jennifer/agent/jennifer.boot.jar 
 -javaagent:/home/jennifer/agent/lwst.javaagent.jar

생성된 libjennifer20.so(sl) 파일을 복사한다.

해당 WAS에서 env.jsp파일을 실행시키면 sun.boot.library.path 해당 WAS의 sun.boot.library.path 디렉토리에 ${agent_home}/libjennifer20.so(sl) 파일을 복사한다.

제니퍼 화면에서 장애진단 → 시스템환경변수 에서 sun.boot.library.path에 등록된 디렉토리에 ${agent_home}/libjennifer20.so(sl) 파일을 복사한다.

agent config 수정해야할 부분

agent 설정파일의 마지막 부분을 아래와같이 변경한다.

TX_SERVER로 설정한 경우에는 이 설정을 하지 않는다.

JDBC 설정

자바 애플리케이션에서 JNDI(Java Naming and Directory Interface)를 이용해서 javax.sql.DataSource 객체를 획득하고, 이 객체로부터 java.sql.Connection 객체를 획득하는 경우를 유형 1이라고 한다. 유형 1은 추가적인 설정없이 JDBC모니터링이 가능하다.

자바 애플리케이션에서 java.sql.DriverManager 클래스를 통해서 java.sql.Connection 객체를 획득하는 경우를 유형 2라고 한다. 이 경우에는 JDBC 커넥션을 풀링하지 않기 때문에 JDBC 커넥션 개수를 체크하지 못한다.

자바 애플리케이션이 커넥션 풀의 역할을 담당하는 임의의 클래스를 통해서 java.sql.Connection 객체를 획득하는 경우를 유형 3이라고 한다. 아파치 DBCP와 같은 커넥션 풀 라이브러리를 사용하거나 레드햇 Hibernate 혹은 아파치 iBATIS 등의 프레임워크를 사용하는 경우가 이에 해당한다.

위에있는 유형 세가지가 모두 불가능한 경우 JDBC Driver의 connect()를 call 하는 부분에서 추적하는데 이 경우를 유형 4라고 한다.

라이센스 설정

agent 설정파일에 명시적으로 설정할 수도 있고, 제니퍼 화면의 구성관리 → 라이센스키관리 메뉴에서 설정할 수 있다.