hibernate.generate_statistics=true を設定し、mbeans を登録して、jmx コンソールで統計を確認できるようにする必要があります。どこにもたどり着けないようで、これはそれほど難しい問題ではないようです。多分私は物事を複雑にしすぎているのかもしれませんが、いずれにせよこれまでに私は試しました:
- EhCacheProvider をコピーし、初期化後に init() をオーバーロードして ManagementService.registerMBeans(...) を呼び出す CacheManager の拡張バージョンをインスタンス化しました。registerMBeans(...) への実際の呼び出しまで、コードはすべて正常に実行されました。これにより、プロバイダーの初期化が一般的なエラーで失敗します (残念ながら、書き留めていませんでした)。このアプローチは、このライフレイで使用されるメソッドによって動機付けられました。パフォーマンスのウォークスルー。
- ehcache の jmx mbeans を登録するこの例と同様のコードを実行する start メソッドを使用して、独自の MBean を作成しました。すべてが正しく動作しているように見え、mbean は jmx コンソールに表示されますが、net.sf.ehcache には何も表示されません。
- それ以来、ehcache を 1.5 にアップグレードし (1.3 を使用していましたが、それが jboss 4.2.1 に固有のものなのか、自分で選択したものなのかはわかりません)、SingletonEhCacheProvider を使用するように変更し、手動で統計を取得しようとしました。 mbean 登録。ただし、実際には改善されていません。getInstance() を呼び出すと、返される CacheManager には StandardQueryCache のコピーしかありませんが、jboss ログには、他の多くのキャッシュが初期化されていることが示されます (アプリケーション内のキャッシュされたエンティティごとに 1 つ)。
編集:まあ、私は1つのことを理解しました... JConsoleを介して接続すると、統計mbeansが明らかになります。ManagementFactory.getPlatformMBeanServer() は、jboss が使用しているのと同じ mbean サーバーを提供しないと思います。とにかく、統計を手動で収集しようとしたときと同様の問題が発生しているようです。アプリを少しクリックした後でもすべてゼロになるためです。