Не удается добиться работы с 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 не будет оборачивать эти соединения. Либо запретите загрузку драйвера, либо попробуйте установить для параметра deregisterdrivers значение true в spy.properties

С помощью :p6spy: префикс не работает для меня. Он говорит, что не может установить связь с этим URL.

Итак, я выбрал настройку этого deregisterdrivers=true в файле свойств. На этот раз я получаю sql в лог-файл, но не могу выполнить sqls. Я могу выполнить SQL в другом редакторе SQL. Казалось, что настоящая связь исчезла, и пришла фиктивная.

Трасса II, мы используем весну. Итак, я попробовал этот метод. Явный источник данных для p6Spy. Но на этот раз весна жаловалась на несколько экземпляров java.sql.DataSource. И то и другое com.firm.BasicDataFill а также com.p6spy.engine.spy.P6DataSource реализует DataSource. Весна не может получить синглтон.

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 различаются. Есть ли у вас какие-либо предложения для весеннего применения.

2 ответа

Я бы порекомендовал начать с последней версии P6Spy 2.x. Вам также следует ЗАМЕНИТЬ файл spy.properties версией по умолчанию для 2.X, которая описана здесь. В зависимости от вашего сервера приложений вам может потребоваться установить параметр "realdriver" в spy.properties, чтобы включить "com.ibm.db2.jcc.DB2Driver". Однако это необходимо только в том случае, если вы используете сервер приложений, который предотвращает автоматическую регистрацию драйверов JDBC.

Чтобы использовать P6Spy с Spring, самый простой способ - обернуть ваш текущий компонент источника данных в P6SpyDataSource, как обсуждалось здесь. Пример в этом ответе показывает, что источник данных JNDI упакован, но его можно использовать для переноса любого источника данных. Примечание. Если вы переносите источник данных P6SpyDataSource, вам НЕ нужно изменять URL JDBC.

Если у вас продолжают возникать проблемы, пожалуйста, добавьте немного больше информации к вашему вопросу. Следующая информация будет полезна при устранении неполадок:

  1. Используемая версия P6Spy
  2. Содержание spy.properties
  3. Определение вашего источника данных (включая конфигурацию сервера приложений при использовании JNDI)
  4. Тип сервера приложений и используемая версия
  5. Stacktrace, содержащая любую ошибку, которую вы могли получить.

Посмотрите на Log4jdbc, он сделает всю работу https://code.google.com/p/log4jdbc/

Другие вопросы по тегам