Poor performance in 1.5.1 due to threads waiting on monitor for synchronized 
jre method
---------------------------------------------------------------------------------------

                 Key: AXIS2-4629
                 URL: https://issues.apache.org/jira/browse/AXIS2-4629
             Project: Axis2
          Issue Type: Bug
          Components: adb
    Affects Versions: 1.5.1
         Environment: RedHat 5.4, Solaris 10 
            Reporter: Chris van Es
            Priority: Critical


We recently upgraded from axis2 1.4.1to 1.5.1 and with no changes to our java 
methods which are exposed using axis we have seen a significant drop in 
performance from around 500-600 TPS to 50 TPS at most. We took a jstack while 
load is on our system and can see alot of threads blocked waiting for an object 
monitor to enter the private method 
java.beans.Introspector.getPublicDeclaredMethods in the JRE which is called by 
axis - stack trace is below.

"http-9080-7" daemon prio=10 tid=0x0a95d800 nid=0x2f1d waiting for monitor 
entry [0xdce76000]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at java.beans.Introspector.getPublicDeclaredMethods(Unknown Source)
        - waiting to lock <0xf0882fa0> (a java.lang.Class for 
java.beans.Introspector)
        at java.beans.Introspector.getTargetPropertyInfo(Unknown Source)
        at java.beans.Introspector.getBeanInfo(Unknown Source)
        at java.beans.Introspector.getBeanInfo(Unknown Source)
        at java.beans.Introspector.getBeanInfo(Unknown Source)
        at 
org.apache.axis2.databinding.utils.BeanUtil.getPropertyQnameList(BeanUtil.java:132)
        at 
org.apache.axis2.databinding.utils.BeanUtil.getPullParser(BeanUtil.java:67)
        at 
org.apache.axis2.rpc.receivers.RPCUtil.processResponse(RPCUtil.java:97)
        at 
org.apache.axis2.rpc.receivers.RPCUtil.processResponseAsDocLitWrapped(RPCUtil.java:437)
        at 
org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:138)
        at 
org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
        at 
org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:173)
        at 
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:167)
        at 
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:142)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Unknown Source)

Having compared the 1.4.1 and 1.5.1 source we can see that the call to the 
synchronized JRE method is not made in 1.4.1. This issue is critical to our 
release as we expect this interface to have a high throughput.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to