web-dev-qa-db-ja.com

Hibernate統計にアクセスする方法

だから私のpersistence.xmlオンにしましたhibernate.generate_statistics

<property name="hibernate.generate_statistics">true</property>

私の質問は、どうすればそれらにアクセスできますか?統計はどこに行きますか?

21
mainstringargs

あなたのdaoサービスであなたは行くことができます:

Session session = this.sessionFactory.getCurrentSession();
SessionStatistics sessionStats = session.getStatistics();
Statistics stats = this.sessionFactory.getStatistics(); 
21
serg

私はむしろ使用したい JMX経由で公開されたHibernate Statistics Springを使用する場合は、 Hibernate Statistics MBean with Spring を使用すると非常に簡単になります。

12
Michael Pralow

そのためのロガーを追加することもできます。見る; http://www.thoughts-on-Java.org/how-to-activate-hibernate-statistics-to-analyze-performance-issues/

<!--Hibernate Statistics-->
            <logger category="org.hibernate.stat" use-parent-handlers="true">
                <level name="DEBUG"/>
            </logger>
3
Koekiebox

HibernateStatisticsにアクセスする方法は複数あります。

プログラムで

アプリケーションでStatisticsオブジェクトを取得する場合は、次のように実行できます。

Session session = entityManager.unwrap(Session.class);

Statistics statistics = session.getSessionFactory().getStatistics();

ロギング

Statisticsレポートをログに記録する場合は、次のログ構成エントリを追加する必要があります。

<logger name="org.hibernate.engine.internal.StatisticalLoggingSessionEventListener" level="info"/>

JMX

この記事 で説明されているように、JMXを介してStatisticsオブジェクトを公開することもできます。

このためには、次の構成プロパティを設定する必要があります。

<property name="hibernate.jmx.enabled" value="true"/>

そして、JMXクライアントアプリケーションでorg.hibernate.coreMBeanパッケージを見つけます。

Hibernateがサポートするメトリックについてよりよく理解したい場合は、 この記事 を確認してください。

3
Vlad Mihalcea

私たちのアプリケーションでは、JMXを介して公開し、完全にするために、手動で行うのが嫌いです アスペクトを使用して基準クエリデータを追加します

2
Hons