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/

+ Recent posts