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(a)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>
Show replies by date