Отсутствует тип MBean: javax.cache: type = CacheStatistics при использовании infinispan как 2L C в wildfly - PullRequest
0 голосов
/ 17 июня 2020

Мы используем wildfly 18.0.1 в качестве сервера приложений. Поскольку модуль hibernate-ehcache устарел, мы перешли на модуль hibernate-jcache. По умолчанию Wildfly использует infinispan как реализацию jcache. Мы также используем мелодию java для мониторинга нашего приложения. Мелодия нашла и отобразила статистику ehcache из коробки. Но он не находит статистику бесконечности. Кэш infinispan настроен в автономном режиме. xml:

...
<cache-container name="hibernate" default-cache="entity" module="org.infinispan.hibernate-cache" statistics-enabled="true">
    <local-cache name="timestamps"/>
    <local-cache name="entity" statistics-enabled="true">
        <object-memory size="10000"/>
        <expiration lifespan="300000"/>
    </local-cache>
</cache-container>
...

постоянство. xml

<persistence version="2.2"
             xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
                                 http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd">

    <persistence-unit name="entityManager">
        <jta-data-source>java:jboss/datasources/...</jta-data-source>
        <shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>

        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle12cDialect"/>

            <property name="hibernate.cache.use_second_level_cache" value="true" />
            <property name="hibernate.cache.use_query_cache" value="true" />
            <property name="hibernate.generate_statistics" value="true" />
            <property name="hibernate.cache.infinispan.statistics" value="true" />
        </properties>

    </persistence-unit>

</persistence>

Таким образом, статистика включена. Таким образом, следуя javado c CacheManager, объекты statisti c должны быть зарегистрированы с уникальным именем ObjectName, имеющим следующий тип и атрибуты:

Тип: javax.cache : type = CacheStatistics

Этого не происходит. Java мелодия ищет эти предметы и не может их найти. Таким образом, он не может отображать какую-либо информацию о кешах.

enter image description here

Скриншот VisualVM, показывающий infinispan MBeans.

Просто интересно, наблюдаю ли я что-то или это то, с чем следует обращаться с wildfly или infinispan? Любая помощь приветствуется. Спасибо

Ответы [ 2 ]

0 голосов
/ 22 июня 2020

Если я все правильно понимаю, wildfly использует infinispan как провайдер 2L C по умолчанию, а не как провайдер jcache. Он использует модуль infinispan-hibernate, а не infinispan-jcache. Вот почему он не ведет себя как jcache-provider. Это не так. Комментарий @evernat, настроив infinispan как jcache-provider, привел меня к решению.

0 голосов
/ 19 июня 2020

Как видно на снимке экрана, infinispan зарегистрировал MBeans под именем объекта org.wildfly.clustering.infinispan:type=Cache, а не под именем объекта javax.cache:type=CacheStatistics.

Так что это нормально, что javamelody не находит javax. статистика кеширования.

...