[
http://issues.apache.org/jira/browse/AXIS-2470?page=comments#action_12377446 ]
srinivas srirangan commented on AXIS-2470:
------------------------------------------
Hi Bjorn
We are using Axis 1.2RC3. But we compared the code between 1.2RC3 and 1.3, and
found there we no differences for the below class:
org.apache.axis.configuration.EngineConfigurationFactoryFinder
1) Initially the performance testing on our server showed very high CPU usage
on the following methods:
java.util.zip.ZipFile.getEntry
sun.misc.URLClassPath.getLoader
java.util.zip.ZipFile.open
The above profiling was done using HPJMeter and Eprof on HP-UX.
2) So, we tried a unit testing on the server by executing this call once and
running a process called tusc on the HP-UX, (tusc is similar to truss on
Solaris) and found that for every outbound web service call made by Axis, the
following jar files were opened and read.
* xercesImpl.jar
* xalan.jar
* axis.jar
* dom3-xercesImpl.jar
* piccolo.jar
* xerces.jar
* xercesImpl.jar
3) Then, I tried to debug more on my local machine by modifying the source file
for java.util.zip.ZipFile.getEntry method and using the prepend bootclasspath
option from java as shown below:
-Xbootclasspath/p:C:/javasrc;
Now, we found that the services.hasNext() call in the below code snippet caused
all the above-mentioned jar files to be opened and read for a specific property
called org.apache.axis.EngineConfigurationFactory. (we can see this from the
trace above)
Code snippet from org.apache.axis.configuration.EngineConfigurationFactoryFinder
======================================================================
ResourceClassIterator services =
AxisProperties.getResourceClassIterator(mySpi);
EngineConfigurationFactory factory = null;
while (factory == null && services.hasNext()) {
try {
Class service =
services.nextResourceClass().loadClass();
/* service == null
* if class resource wasn't loadable
*/
if (service != null) {
factory = newFactory(service,
newFactoryParamTypes, params);
}
} catch (Exception e) {
// there was an exception creating the factory
// the most likely cause was the JDK 1.4 problem
// in the discovery code that requires servlet.jar
// to be in the client classpath. For now, fall
// through to the next factory
}
4) Also, we tried to override this discovery mechanism by running the following
system property options:
* run with
axis.EngineConfigFactory=org.apache.axis.configuration.EngineConfigurationFactoryDefault
* run with
org.apache.axis.EngineConfigurationFactory=org.apache.axis.configuration.EngineConfigurationFactoryDefault
Still these jar files were being read on the services.hasNext() invocation.
5) I looked at the patch provided for the Bug - 385
(http://issues.apache.org/jira/browse/AXIS-385). I was not sure why this code
is removed from the later releases.
Does this help? Please let me know if you need any more details. Thanks.
> performance issue with discovery for
> org.apache.axis.EngineConfigurationFactory
> -------------------------------------------------------------------------------
>
> Key: AXIS-2470
> URL: http://issues.apache.org/jira/browse/AXIS-2470
> Project: Apache Axis
> Type: Bug
> Components: Serialization/Deserialization
> Versions: 1.2RC3
> Environment: HP-UX, Apache Axis 1.2 RC3, Websphere 6.0
> Reporter: srinivas srirangan
>
> This is reference to a performance problem that we are currently facing and
> silmilar to the bug 385 (http://issues.apache.org/jira/browse/AXIS-385).
> Our trace below shows that the property named
> "org.apache.axis.EngineConfigurationFactory" is being searched on all the xml
> related jar files.
> We tried running the tests with the both the below options:
> 1) run with
> axis.EngineConfigFactory=org.apache.axis.configuration.EngineConfigurationFactoryDefault
>
> 2) run with
> org.apache.axis.EngineConfigurationFactory=org.apache.axis.configuration.EngineConfigurationFactoryDefault
> Still we get an identical results. Our final result shows high CPU
> utilization on the java.util.zip.ZipFile.getEntry() method and the root cause
> being the jar files being read for the each outbound web service call.
> Does the discovery mechanism does this by default?
> Can you please shed some lights on this issue?
> trace:
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\xercesImpl.jar Entry
> Name:
> org/apache/commons/discovery/resource/names/DiscoverNamesInAlternateManagedProperties$1.class
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\xalan.jar Entry Name:
> org/apache/commons/discovery/resource/names/DiscoverNamesInAlternateManagedProperties$1.class
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\axis.jar Entry Name:
> org/apache/commons/discovery/resource/names/DiscoverNamesInAlternateManagedProperties$1.class
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\xercesImpl.jar Entry
> Name:
> org/apache/commons/discovery/resource/names/DiscoverNamesInManagedProperties$1.class
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\xalan.jar Entry Name:
> org/apache/commons/discovery/resource/names/DiscoverNamesInManagedProperties$1.class
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\axis.jar Entry Name:
> org/apache/commons/discovery/resource/names/DiscoverNamesInManagedProperties$1.class
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\xercesImpl.jar Entry
> Name: META-INF/services/org.apache.axis.EngineConfigurationFactory
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\xalan.jar Entry Name:
> META-INF/services/org.apache.axis.EngineConfigurationFactory
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\axis.jar Entry Name:
> META-INF/services/org.apache.axis.EngineConfigurationFactory
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\dom3-xercesImpl.jar Entry
> Name: META-INF/services/org.apache.axis.EngineConfigurationFactory
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\piccolo.jar Entry Name:
> META-INF/services/org.apache.axis.EngineConfigurationFactory
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\xerces.jar Entry Name:
> META-INF/services/org.apache.axis.EngineConfigurationFactory
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\xercesImpl.jar Entry
> Name: META-INF/services/org.apache.axis.EngineConfigurationFactory
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\xalan.jar Entry Name:
> META-INF/services/org.apache.axis.EngineConfigurationFactory
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\axis.jar Entry Name:
> META-INF/services/org.apache.axis.EngineConfigurationFactory
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\dom3-xercesImpl.jar Entry
> Name: META-INF/services/org.apache.axis.EngineConfigurationFactory
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\piccolo.jar Entry Name:
> META-INF/services/org.apache.axis.EngineConfigurationFactory
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\xerces.jar Entry Name:
> META-INF/services/org.apache.axis.EngineConfigurationFactory
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\xercesImpl.jar Entry
> Name: org/apache/commons/discovery/resource/names/DiscoverMappedNames$1.class
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\xalan.jar Entry Name:
> org/apache/commons/discovery/resource/names/DiscoverMappedNames$1.class
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\axis.jar Entry Name:
> org/apache/commons/discovery/resource/names/DiscoverMappedNames$1.class
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\xercesImpl.jar Entry
> Name: org/apache/axis/configuration/EngineConfigurationFactoryDefault.class
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\xalan.jar Entry Name:
> org/apache/axis/configuration/EngineConfigurationFactoryDefault.class
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\axis.jar Entry Name:
> org/apache/axis/configuration/EngineConfigurationFactoryDefault.class
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\xercesImpl.jar Entry
> Name: org/apache/axis/configuration/EngineConfigurationFactoryDefault.class
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\xalan.jar Entry Name:
> org/apache/axis/configuration/EngineConfigurationFactoryDefault.class
> File Name: C:\viewstore\sriranga_best_2.06\best\lib\axis.jar Entry Name:
> org/apache/axis/configuration/EngineConfigurationFactoryDefault.class
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira