In high load scenarios with many threads, the call to 
Introspector.getBeanInfo(Class,Class) causes high synchronization resulting in 
system stall
-------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: AXIS2-5118
                 URL: https://issues.apache.org/jira/browse/AXIS2-5118
             Project: Axis2
          Issue Type: Improvement
          Components: adb
    Affects Versions: 1.5.4
         Environment: Tomcat 7 with axis2 webservices
            Reporter: Ronald Brindl


I have a high load scenario, where a Clustered Web frontend does Webservice 
calls to a Backend Webservices. 
There are around 200 Threads handling the webservices.
The CPU load of the machine went to near zero.
Using dynatrace, we realized, that all the calls went through 
BeanUtils.getPropertyQnameList, which in turn calls 
Introspector.getBeanInfo(beanClass, beanClass.getSuperclass());
This again calls WebAppClassLoader.loadClass(String name, boolean resolve), 
which is synchronized.

I fixed this problem by modifying BeanUtil.getPropertyQnameList so that it 
caches BeanInfo objects.


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to