Я установил hibernate.generate_statistics = true и теперь вам нужно зарегистрировать mbeans, чтобы я мог видеть статистику в консоли jmx. Кажется, я ничего не могу найти, и это не похоже, что это должна быть такая сложная проблема. Может быть, я делаю вещи усложненной, но в любом случае, до сих пор я пытался:Включение статистики ehcache в jboss 4.2.1
- Я скопировал EhCacheProvider и она была экземпляр расширенной версии CacheManager, который перегружен Init() и называемые ManagementService.registerMBeans (.. .) после инициализации. Код все прошел нормально до фактического вызова registerMBeans (...), что приведет к сбою инициализации провайдера с общей ошибкой (к сожалению, я не записал ее). Этот подход был основан на методах, используемых в this liferay performance walkthrough.
- Я создал свой собственный MBean с помощью метода запуска, который запускал аналогичный код this example of registering ehcache's jmx mbeans. Все, казалось, работало корректно, и моя mbean появляется в консоли jmx, но ничего для net.sf.ehcache.
- С тех пор я обновил ehcache до 1.5 (мы использовали 1.3, не уверен, что это специфично для jboss 4.2.1 или просто что-то, что мы выбрали сами) и изменили на использование SingletonEhCacheProvider и попытались просто вручную захватить статистику вместо занимающихся регистрацией mbean. Однако на самом деле это не улучшилось; если я называю GetInstance() в CacheManager, который возвращается только имеет копию StandardQueryCache, но JBoss журналы показывают, что многие другие кэши были инициализированы
EDIT (один для каждой из кэшированных объектов в нашем приложении.): Ну Я выяснил одно: подключение через JConsole показывает статистику mbeans. Я думаю, что ManagementFactory.getPlatformMBeanServer() не дает вам тот же mbean-сервер, что и jboss. В любом случае, похоже, что я столкнулся с аналогичной проблемой, так как когда я пытался собирать статистику вручную, потому что я получаю все нули даже после небольшого нажатия на мое приложение.