Нет статистики SQL на JavaMelody - JBoss EAP 7

У меня есть приложение maven, работающее на JBoss EAP 7.2. Подробности ниже:

  • Сборка: Maven 3.6
  • Сервер: JBoss EAP 7.2
  • Java: OpenJDK 11
  • Ядро JavaMelody: 1.83.0
  • Пакет: EAR
  • Применение: Struts 2.5.22
  • БД: Oracle 18c
  • Драйвер OJDBC: 18.3

Хотя мне удалось настроить JavaMelody и просмотреть основную статистику, я не могу найти способ настроить мониторинг SQL.

В настоящее время для моей конфигурации JDBC я использую <jta-data-source>java:jboss/datasources/myDS</jta-data-source> в моем файле persistence.xml, который считывает источник данных из standalone.xml сервера JBoss.

Я попробовал несколько изменений в моем файле persistence.xml, например, добавив:

<property name="net.bull.javamelody.jpa.provider" value="org.hibernate.jpa.HibernatePersistenceProvider" />

or

<property name="hibernate.connection.driver_class" value="net.bull.javamelody.JdbcDriver"/>

Моя конфигурация struts.xml

<package name="myApp" extends="struts-default">
   <interceptors>
      <interceptor name="monitoring" class="net.bull.javamelody.StrutsInterceptor" />
      <interceptor-stack name="myAppStack">
         <interceptor-ref name="monitoring" />
         <interceptor-ref name="prepare" />
         ....
         <interceptor-ref name="json" />
         <interceptor-ref name="debugging" />
         <interceptor-ref name="defaultStack" />
      </interceptor-stack>
   </interceptors>
   <default-interceptor-ref name="myAppStack" />
</package>

или даже полностью сконфигурировать мой источник данных в файле постоянства, используя свойства hibernate.connection.url / username / password, но безуспешно.

Я пытался следовать приведенным здесь инструкциям, но не могу найти, что не так: https://github.com/javamelody/javamelody/wiki/UserGuide#7-jdbc https://github.com/javamelody/javamelody/wiki/UserGuideAdvanced#jpa-monitoring

Примечание. В моем файле persistence.xml я также использовал <property name="hibernate.connection.driver" value="oracle.jdbc.OracleDriver" />. Я не уверен, что это противоречит этому.


person Stephan    schedule 01.06.2020    source источник


Ответы (1)


Мониторинг JPA полностью отличается от мониторинга SQL: не пытайтесь net.bull.javamelody.jpa.provider отслеживать SQL. И бесполезно пробовать hibernate.connection.driver_class, если вы используете источник данных из JNDI.

Для мониторинга SQL вы можете попробовать отслеживать SQL из источника данных в JNDI:

  • либо добавьте источник данных параметра javamelody, например, с помощью системного свойства: -Djavamelody.datasources=java:jboss/datasources/myDS
  • или переименуйте свой источник данных в java:jdbc/myDS

Затем проверьте «Журналы отладки» внизу отчетов javamelody.

И поскольку вы используете EAR, см. https://github.com/javamelody/javamelody/wiki/UserGuideAdvanced#setup-javamelody-in-an-ear-file

person evernat    schedule 01.06.2020
comment
1) При моей первой попытке с JBoss EAP 6, а также после этого stackoverflow.com/a/56401927/1918516 я помню, что удалось заставить Java Melody работать. Теперь, хотя я могу получить доступ к сайту сообщения, в моих журналах я вижу: java.lang.NoClassDefFoundError: Не удалось связать net / bull / javamelody / StrutsInterceptor 2) Спасибо за вашу помощь. Аргумент помог SQL! - person Stephan; 01.06.2020
comment
Ошибка NoClassDefFoundError: не удалось связать net / bull / javamelody / StrutsInterceptor, безусловно, из-за упаковки EAR и, возможно, из-за того, что struts2-core не находится в том же загрузчике классов, что и javamelody. Поэтому в этом случае мониторинг Struts невозможен. - person evernat; 01.06.2020
comment
Итак, в конце концов, я не могу использовать JavaMelody с упаковкой Struts и EAR, если я правильно понимаю или ее все еще можно настроить? Поскольку мои struts и зависимость javamelody находятся в одном модуле war, содержащемся в EAR, не должны ли они взаимодействовать с одним и тем же загрузчиком классов? - person Stephan; 02.06.2020
comment
Насколько мне известно, вы можете использовать javamelody с упаковкой Struts и EAR. Если NoClassDefFoundError: не удалось связать net / bull / javamelody / StrutsInterceptor, является проблемой, и если он не работает в этом EAR, просто не используйте javamelody StrutsInterceptor в конфигурации Struts. - person evernat; 03.06.2020