1

春に使用するプロジェクトに p6Spy 機能を追加するための 2 つの方法を試しました。

ルートⅠ、

http://templth.blogspot.com.tr/2004/11/integrate-p6spy-with-spring.html でドライバーを変更し、com.p6spy.engine.spy.P6SpyDriverrealdriver realdriver=com.ibm.db2.jcc.DB2Driverspy.propertiesファイルに追加しました。

しかし、どういうわけか私のリアルドライバーは p6spy ドライバーの前に登録されています p6spy はこれらの接続をラップしません。ドライバーのロードを防止するか、spy.properties で「deregisterdrivers」を true に設定してみてください。

プレフィックスを使用:p6spy:してもうまくいきません。そのURLとの接続を確立できませんと表示されます。

したがって、これderegisterdrivers=trueをプロパティファイルに設定することにしました。今回は、ログ ファイルに sql を取得しますが、sql を実行できません。別のSQLエディターでSQLを実行できます。本当の接続が切れたようで、ダミーの接続が来ました。

ルートⅡ、バネを使用。そこで、この方法を試しました。データソースを明示的に p6Spy に渡します。しかし今回、Spring は複数の java.sql.DataSource インスタンスについて不平を言いました。とDataSourceの両方com.firm.BasicDataFillを実装します。com.p6spy.engine.spy.P6DataSourceSpring はシングルトンを取得できません。

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 の設定が異なることを発見しました。春ベースのアプリケーションについて何か提案はありますか。

4

2 に答える 2

1

P6Spy 2.x の最新バージョンから始めることをお勧めします。また、spy.properties ファイルを、ここに記載されている 2.X のデフォルト バージョンに置き換える必要があります。アプリケーション サーバーによっては、spy.properties の「realdriver」設定に「com.ibm.db2.jcc.DB2Driver」を含める必要がある場合があります。ただし、これは、JDBC ドライバーの自動登録を防止するアプリケーション サーバーを使用している場合にのみ必要です。

Spring で P6Spy を使用する最も簡単な方法は、現在のデータ ソース Bean を P6SpyDataSource でラップすることです (ここで説明します) 。その回答の例は、JNDI データ ソースがラップされていることを示していますが、任意のデータ ソースをラップするために使用できます。注: データ ソースが P6SpyDataSource である場合、JDBC URL を変更する必要はありません。

引き続き問題が発生する場合は、質問にもう少し情報を追加してください。次の情報は、トラブルシューティングに役立ちます。

  1. 使用されている P6Spy のバージョン
  2. spy.properties の内容
  3. データソースの定義 (JNDI を使用している場合はアプリ サーバー構成を含む)
  4. 使用されているアプリ サーバーの種類とバージョン
  5. 受け取った可能性のあるエラーを含むスタックトレース。
于 2015-07-10T15:07:07.173 に答える
-1

Log4jdbc を見てください。それは仕事をします https://code.google.com/p/log4jdbc/

于 2015-07-10T09:41:19.050 に答える