Hi Folks,

I am trying to measure the time taken for the CXF BC to enter and exit from
a Consume as well as Provider BC.

I am trying using Spring AOP.

Below are the list of issues which I am facing when I try to use Spring AOP
and measure the performance.

The same was working on SMX-3.X

I changed the the cutpoint-id from
org.apache.servicemix.jbi.nmr.flow.Flow.send(..)) to
org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(..))


And there is no change in the application descriptor file, it remains the
same as,

<beans xmlns="http://www.springframework.org/schema/beans";
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
      xmlns:aop="http://www.springframework.org/schema/aop";
      xsi:schemaLocation="
       http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
       http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd";>

  
      <aop:aspectj-autoproxy/>
  
  
      <bean id="performanceAdvice"
class="abc.xyz.boo.far.PerformanceAdvice"/>

Also I have an entry in SMX4_HOME/etc/org.ops4j.pax.logging.cfg for the
abc.xyz.boo.far.PerformanceAdvice to log the performance data as follows,


log4j.logger.urn.mb.library.aop=INFO, PerformanceAdvisorLogger
log4j.appender. PerformanceAdvisorLogger
=org.apache.log4j.RollingFileAppender
log4j.appender.
PerformanceAdvisorLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.
PerformanceAdvisorLogger.layout.ConversionPattern=%d{ABSOLUTE} | %-5.5p |
%-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} -
%X{bundle.version} | %m%n
log4j.appender.
PerformanceAdvisorLogger.file=${karaf.data}/log/performancedata.log
log4j.appender. PerformanceAdvisorLogger.append=true
log4j.appender. PerformanceAdvisorLogger.maxFileSize=10MB
log4j.appender. PerformanceAdvisorLogger.maxBackupIndex=10

and I have my abc.xyz.boo.far.PerformanceAdvice.java as follows,

import javax.jbi.messaging.MessageExchange;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;

@Aspect
public class PerformanceAdvice {
    private static final transient Log LOG
        = LogFactory.getLog(PerformanceAdvice.class);
//SMX-4 AOP Workaround.
//@Around("execution(*
org.apache.servicemix.jbi.nmr.flow.Flow.*send.*(..))")
//@Around("execution(* org.apache.servicemix.jbi.nmr.flow.Flow.send(..))")
@Around("execution"
+
"(* org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(..))")
//+ "(*
org.apache.servicemix.nmr.core.StraightThroughFlow.*dispatch.*(..))")
//"(* org.apache.servicemix.nmr.api.internal.Flow.*dispatch.*(..))")
    public final Object measurePerformance(
            final ProceedingJoinPoint thisJoinPoint) {
LOG.info("Entering Inside PerformanceAdvice.measurePerformance()");
        Object ret = null;
        try {
            MessageExchange me = (MessageExchange)
thisJoinPoint.getArgs()[0];
            String role;
            if (me.getRole() == MessageExchange.Role.PROVIDER) {
                role = "PROVIDER";
            } else {
                role = "CONSUMER";
            }

            LOG.info("PerformanceAdvice.measurePerformance() Start : "
                    + me.getEndpoint().getServiceName()
                    + " (status: " + me.getStatus()
                    + ", role: "  + role + ")");

            long startTime = System.currentTimeMillis();

            ret = thisJoinPoint.proceed();

            long endTime = System.currentTimeMillis();
            LOG.info("PerformanceAdvice.measurePerformance() Finished : "
            + me.getEndpoint().getServiceName()
                    + " in " + (endTime - startTime) + " ms.");

        } catch (Throwable e) {
            e.printStackTrace();
       }
       return ret;
   }
}


But no lo comes up in the configured log file.

Can someone can shed some light on this particular issue.

Any help is genuinely appreciated.

Best Regards,
K.B.K


--
View this message in context: 
http://servicemix.396122.n5.nabble.com/SMX-Performance-Tracking-USing-Spring-AOP-tp4909494p4909494.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to