Red Hat Training
A Red Hat training course is available for Red Hat JBoss Web Server
20.6. パフォーマンスのモニタリング
最適化はモニタリングやパフォーマンスを示す数値がなければ十分に行えません。 Hibernate は内部処理のすべての範囲の数値を提供します。 Hibernate の統計情報は
SessionFactory
単位で取得可能です。
20.6.1. SessionFactory のモニタリング
SessionFactory
のメトリクスにアクセスするには2つの方法があります。最初の方法は、 sessionFactory.getStatistics()
を呼び出し、自分で Statistics
の読み込みや表示を行います。
StatisticsService
MBean を有効にしていれば、Hibernate は JMX を使ってメトリクスを発行することもできます。1つの MBean をすべての SessionFactory
に対して有効にするか、SessionFactory ごとに一つの MBean を有効にすることが出来ます。最小限の設定例については、以下のコードを見てください:
// MBean service registration for a specific SessionFactory Hashtable tb = new Hashtable(); tb.put("type", "statistics"); tb.put("sessionFactory", "myFinancialApp"); ObjectName on = new ObjectName("hibernate", tb); // MBean object name StatisticsService stats = new StatisticsService(); // MBean implementation stats.setSessionFactory(sessionFactory); // Bind the stats to a SessionFactory server.registerMBean(stats, on); // Register the Mbean on the server
// MBean service registration for all SessionFactory's Hashtable tb = new Hashtable(); tb.put("type", "statistics"); tb.put("sessionFactory", "all"); ObjectName on = new ObjectName("hibernate", tb); // MBean object name StatisticsService stats = new StatisticsService(); // MBean implementation server.registerMBean(stats, on); // Register the MBean on the server
SessionFactory
に対してモニタリングの開始や終了を行うことが出来ます。
- 設定時には、
hibernate.generate_statistics
をfalse
にします
- 実行時に、
sf.getStatistics().setStatisticsEnabled(true)
またはhibernateStatsBean.setStatisticsEnabled(true)
を呼び出します
統計は
clear()
メソッドを使ってプログラムでリセットすることが出来ます。サマリは logSummary()
メソッドを使って logger に送ることが出来ます(info レベルです)。