春に使用するプロジェクトに p6Spy 機能を追加するための 2 つの方法を試しました。
ルートⅠ、
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
ファイルに追加しました。
しかし、どういうわけか私のリアルドライバーは 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.P6DataSource
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 の設定が異なることを発見しました。春ベースのアプリケーションについて何か提案はありますか。