modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/common/PerformanceMonitorInterceptor.java | 18 +++++++--- modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/HibernatePerformanceMonitor.java | 10 +++-- modules/enterprise/server/jar/src/main/resources/META-INF/ejb-jar.xml | 2 - 3 files changed, 20 insertions(+), 10 deletions(-)
New commits: commit 6708b9ddca16e3c3303fe854312925be33520589 Author: John Mazzitelli mazz@redhat.com Date: Tue Jan 4 17:15:48 2011 -0500
enable the interceptor always. but that interceptor should only ever do something if the hibernate monitor has its debug logger enabled now to enable hibernate stats, you just edit jboss-log4j.xml and uncomment HibernatePerformanceMonitor category
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/common/PerformanceMonitorInterceptor.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/common/PerformanceMonitorInterceptor.java index da10897..dba1556 100644 --- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/common/PerformanceMonitorInterceptor.java +++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/common/PerformanceMonitorInterceptor.java @@ -18,10 +18,18 @@ import org.rhq.enterprise.server.util.HibernatePerformanceMonitor; public class PerformanceMonitorInterceptor { @AroundInvoke public Object monitorHibernatePerformance(InvocationContext context) throws Exception { - String prefix = context.getMethod().getDeclaringClass().getSimpleName() + "." + context.getMethod().getName(); - long monitorId = HibernatePerformanceMonitor.get().start(); - Object results = context.proceed(); - HibernatePerformanceMonitor.get().stop(monitorId, "SLSB:" + prefix); - return results; + if (HibernatePerformanceMonitor.isLoggingEnabled()) { + String prefix = context.getMethod().getDeclaringClass().getSimpleName() + "." + + context.getMethod().getName(); + long monitorId = HibernatePerformanceMonitor.get().start(); + try { + Object results = context.proceed(); + return results; + } finally { + HibernatePerformanceMonitor.get().stop(monitorId, "SLSB:" + prefix); + } + } else { + return context.proceed(); + } } } diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/HibernatePerformanceMonitor.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/HibernatePerformanceMonitor.java index 6ac23c8..7c58b43 100644 --- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/HibernatePerformanceMonitor.java +++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/HibernatePerformanceMonitor.java @@ -50,8 +50,12 @@ public class HibernatePerformanceMonitor { return singleton; }
+ public static boolean isLoggingEnabled() { + return log.isDebugEnabled(); + } + public void zeroStats() { - if (log.isDebugEnabled()) { + if (isLoggingEnabled()) { EntityManager entityManager = LookupUtil.getEntityManager(); MBeanServer platformMBeanServer = ManagementFactory.getPlatformMBeanServer(); Statistics stats = PersistenceUtility.getStatisticsService(entityManager, platformMBeanServer); @@ -60,7 +64,7 @@ public class HibernatePerformanceMonitor { }
public long start() { - if (log.isDebugEnabled()) { + if (isLoggingEnabled()) { EntityManager entityManager = LookupUtil.getEntityManager(); HibernateStatisticsStopWatch watch = new HibernateStatisticsStopWatch(entityManager); long id = idGenerator.incrementAndGet(); @@ -72,7 +76,7 @@ public class HibernatePerformanceMonitor { }
public void stop(long id, String logPrefix) { - if (log.isDebugEnabled()) { + if (isLoggingEnabled()) { HibernateStatisticsStopWatch watch = watches.remove(id); if (watch == null) { return; // could happen if debugging was turned on and the start() call was already skipped diff --git a/modules/enterprise/server/jar/src/main/resources/META-INF/ejb-jar.xml b/modules/enterprise/server/jar/src/main/resources/META-INF/ejb-jar.xml index 2da7617..8222948 100644 --- a/modules/enterprise/server/jar/src/main/resources/META-INF/ejb-jar.xml +++ b/modules/enterprise/server/jar/src/main/resources/META-INF/ejb-jar.xml @@ -18,12 +18,10 @@ <ejb-name>*</ejb-name> <interceptor-class>org.rhq.enterprise.server.common.TransactionInterruptInterceptor</interceptor-class> </interceptor-binding> - <!-- enable this to get lots of performance data as you navigate around the UI <interceptor-binding> <ejb-name>*</ejb-name> <interceptor-class>org.rhq.enterprise.server.common.PerformanceMonitorInterceptor</interceptor-class> </interceptor-binding> - -->
</assembly-descriptor>
rhq-commits@lists.fedorahosted.org