1.1 개요
Datasource를 사용할 때 수행되는 SQL쿼리의 내용을 보여주는 방법에 대해 알아본다.
오픈소스의 하나인 Spy를 JEUS에서 사용하는 방법을 알아보고, 기타 다른 방법들에 대해서도 살펴본다.
1.2 설치방법
오픈소스로 구현된 Spy 는 http://www.p6spy.com 에서 다운받으면 된다.
다운로드 받은 후 압축을 풀고 p6spy.jar파일과 spy.properties 파일을 $JEUS_HOME/lib/application에 넣는다.
1.3 설정
1) JEUS Datasource 변경
오라클을 예를 들어 설명하면 웹관리자 (http://아이피:9744/webadmin)로 우선 Datasource를 ConnectionPoolDataSource 로 해서 설정한다.
설정 후에는 $JEUS_HOME/호스트명/JEUSMain.xml 파일을 다음과 같이 직접 수정해 주어야 한다.
</database>
<vendor>oracle</vendor>
<export-name>oracledb</export-name>
<data-source-class-name>jeus.jdbc.driver.blackbox.BlackboxConnectionPoolDataSource</data-source-class-name>
<data-source-type>ConnectionPoolDataSource</data-source-type>
<property>
<name>DriverClassName</name>
<type>java.lang.String</type>
<value>com.p6spy.engine.spy.P6DataSource</value>
</property>
<property>
<name>URL</name>
<type>java.lang.String</type>
<value>jdbc:oracle:thin:@192.169.30.244:1521:ora9i</value>
</property>
<property>
<name>User</name>
<type>java.lang.String</type>
<value>scott</value>
</property>
<property>
<name>Password</name>
<type>java.lang.String</type>
<value>tiger</value>
</property>
<connection-pool>
<pooling>
<min>2</min>
<max>2</max>
<step>2</step>
<period>3600000</period>
</pooling>
</connection-pool>
</database>
위에서 처럼 Datasource 설정을 BlackboxConnectionPoolDataSource 으로 변경하고 DriverClass에 com.p6spy.engine.spy.P6DataSource 인자를 넣는다.
다른 DB도 동일하게 두 가지만 수정해주면 된다.
2) spy.properties 설정
realdriver=oracle.jdbc.driver.OracleDriver
realdatasource=oracledb
realdatasourceclass=oracle.jdbc.pool.OracleDataSource
logfile=<파일명을 포함한 로그파일의 경로>
이 파일에 실제 Driver와 Datasource 명을 넣는다.
1.4 로그내용
1176341426312|3172|0|statement||CREATE TABLE COFFEES (COF_NAME VARCHAR(32), SUP_ID INTEGER, PRICE FLOAT, SALES INTEGER, TOTAL INTEGER)
1176341426953|641|0|statement||INSERT INTO COFFEES VALUES ('Colombian', 101, 7.99, 0, 0)
1176341427359|94|0|statement||SELECT COF_NAME, PRICE, SALES FROM COFFEES
1176341427390|-1||resultset|SELECT COF_NAME, PRICE, SALES FROM COFFEES|COF_NAME = Colombian_Decaf, SALES = 0
1176341427390|-1||resultset|SELECT COF_NAME, PRICE, SALES FROM COFFEES|COF_NAME = French_Roast_Decaf, SALES = 0
1176341432250|4704|0|statement||DROP TABLE COFFEES
위의 파란색으로 표시된 두 번째 필드가 수행시간이다.
1.5 기타 방법
1) IBatis(SQLMap)에서 사용하기
만약 SQL관리의 대명사인 IBatis(SQLMap) http://ibatis.apache.org/ 를 사용하고 있다면 log4.properties파일에 다음과 같이 간단히 추가하는 것만으로 로깅이 가능하다.
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.Resultset=DEBUG
2) Elvyx 사용하기
Elvyx는 아파치 하위 프로젝트인 maven으로부터 파생된 가장 최신의 오픈소스로 강력한 UI와 eclipse plugin을 지원하므로 사용해볼 만 하다. (http://elvyx.com)
출처: http://technet.tmaxsoft.com/
': Web' 카테고리의 다른 글
[용어] SOAP (Simple Object Access Protocol) (0) | 2008.07.21 |
---|---|
[용어] SSO (Single Sign On; 통합인증, 단일인증) (0) | 2008.07.16 |
JEUS 및 WebtoB 버전 확인 (0) | 2008.05.15 |
공인 IP 확인하는 사이트 (1) | 2008.04.30 |
구글 캘린더 - 일정관리 공유 (0) | 2008.04.30 |