복붙노트

[SPRING] p6Spy로 작업 할 수 없습니다.

SPRING

p6Spy로 작업 할 수 없습니다.

스프링 프로젝트에 p6Spy 기능을 추가하는 두 가지 방법을 시도했습니다.

루트 I,

http://templth.blogspot.com.tr/2004/11/integrate-p6spy-with-spring.html com.p6spy.engine.spy.P6SpyDriver로 드라이버를 변경하고 realdriver realdriver = com.ibm.db2.jcc.DB2Driver를 spy.properties 파일에 추가했습니다.

하지만 필자의 realdriver는 p6spy 드라이버 com.ibm.db2.jcc.DB2Driver가 spy.properties의 실제 드라이버이기 전에 등록되지만 p6spy 전에로드되었습니다. p6spy는 이러한 연결을 래핑하지 않습니다. 드라이버가로드되지 않도록하거나 spy.properties에서 'deregisterdrivers'를 true로 설정하십시오.

사용 : p6spy : 접두어가 작동하지 않습니다. 그것은 해당 URL과 연결할 수 없다고 말합니다.

그래서, 나는 속성 파일에서 이것을 deregisterdrivers = true로 설정했다. 이번에는 로그 파일에서 sql을 얻을 수 있지만 sqls는 실행할 수 없습니다. 다른 SQL 편집기에서 sql을 실행할 수 있습니다. 그것은 진짜 연결이 갔던 것처럼 보였습니다. 그리고 어리석은 사람이 왔습니다.

루트 II, 우리는 봄을 사용합니다. 그래서이 방법을 시도했습니다. p6Spy에 명시 적으로 데이터 소스를 제공합니다. 그러나 이번 봄에 여러 개의 java.sql.DataSource 인스턴스가 불만을 터뜨렸다. com.firm.BasicDataFill 및 com.p6spy.engine.spy.P6DataSource는 모두 DataSource를 구현합니다. Spring은 싱글 톤을 얻을 수 없다.

http://templth.blogspot.com.tr/2004/11/integrate-p6spy-with-spring.html

<bean id="dataSource" lazy-init="true"
    class="com.firm.BasicDataFill">
    <property name="driverClassName" value="${database.connection.driver_class}" />
    <property name="username" value="${database.connection.username}" />
    <property name="password" value="${database.connection.password}" />
    <property name="url" value="${database.connection.url}" />
       ...
    <property name="accessToUnderlyingConnectionAllowed" value="true" />                                
</bean>

<!-- bean id="myDataSource" class="com.p6spy.engine.spy.P6DataSource">
    <constructor-arg>
        <ref local="dataSource"/>
    </constructor-arg>
</bean-->

마지막으로, p6spy v1.3 및 2.4.1 설정이 다양하다는 사실을 발견했습니다. 스프링 기반 응용 프로그램에 대한 제안이 있습니까?

해결법

  1. ==============================

    1.P6Spy 2.x의 최신 버전부터 시작하는 것이 좋습니다. spy.properties 파일을 여기에 설명 된 2.X의 기본 버전으로 바꾸어야합니다. 응용 프로그램 서버에 따라 spy.properties의 'realdriver'설정을 'com.ibm.db2.jcc.DB2Driver'를 포함하도록 설정해야 할 수도 있습니다. 그러나 이는 JDBC 드라이버의 자동 등록을 금지하는 응용 프로그램 서버를 사용할 때만 필요합니다.

    P6Spy 2.x의 최신 버전부터 시작하는 것이 좋습니다. spy.properties 파일을 여기에 설명 된 2.X의 기본 버전으로 바꾸어야합니다. 응용 프로그램 서버에 따라 spy.properties의 'realdriver'설정을 'com.ibm.db2.jcc.DB2Driver'를 포함하도록 설정해야 할 수도 있습니다. 그러나 이는 JDBC 드라이버의 자동 등록을 금지하는 응용 프로그램 서버를 사용할 때만 필요합니다.

    Spring에서 P6Spy를 사용하는 가장 쉬운 방법은 여기에서 설명한 P6SpyDataSource로 현재 데이터 소스 빈을 래핑하는 것이다. 이 답변의 예제는 JNDI 데이터 소스가 랩핑되어 있음을 보여 주지만 모든 데이터 소스를 래핑하는 데 사용할 수 있습니다. 주 : 데이터 소스를 랩핑 할 경우 P6SpyDataSource이면 JDBC URL을 수정할 필요가 없습니다.

    문제가 계속 발생하면 질문에 조금 더 많은 정보를 추가하십시오. 다음 정보는 문제 해결에 도움이됩니다.

  2. ==============================

    2.Log4jdbc을 살펴보고 https://code.google.com/p/log4jdbc/ 작업을 수행합니다.

    Log4jdbc을 살펴보고 https://code.google.com/p/log4jdbc/ 작업을 수행합니다.

  3. from https://stackoverflow.com/questions/31337283/cant-achieve-working-with-p6spy by cc-by-sa and MIT license