Axis2 slow in jdk1.4.x environment

Discussions

XML & Web services: Axis2 slow in jdk1.4.x environment

  1. Axis2 slow in jdk1.4.x environment (1 messages)

    We observed big performance degradation when we upgraded our Axis services to Axis2. This was bit socking because Axis2 is re-architected from Axis and supposed to be faster and better alternative than classic Axis. After extensive debugging efforts we found that code form 'annogen-0.1.0.jar' was spending a lots of time in detecting JDK1.5 presence. We fixed the issue by modifying following methods to avoid same detection repetitively and now our services flies (2 to 3 times faster). org.codehaus.jam.internal.TigerDelegate. isTigerJavadocAvailable (JamLogger logger) org.codehaus.jam.internal.TigerDelegate.isTigerReflectionAvailable(JamLogger logger) Hope this helps someone who is facing similar problem. Thanks, Sudhaker [Code Fix] private static boolean tigerReflectionAvailable = false; private static boolean tigerJavadocAvailable = false; private static boolean tigerReflectionCheckDone = false; private static boolean tigerJavadocCheckDone = false; protected static boolean isTigerJavadocAvailable(JamLogger logger) { if (! tigerJavadocCheckDone) try { tigerJavadocCheckDone = true; // class for name this because it's 1.5 specific. if it fails, we // don't want to use the extractor Class.forName(SOME_TIGER_SPECIFIC_JAVADOC_CLASS); tigerJavadocAvailable = true; return true; } catch (ClassNotFoundException e) { issue14RuntimeWarning(e,logger); } return tigerJavadocAvailable; } /* * This method was causing huge performance impact in our WAS5.1 environment so JDK1.5 * detection is bypassed. We can remove this class when we move to JDK1.5 :-) */ protected static boolean isTigerReflectionAvailable(JamLogger logger) { if (! tigerReflectionCheckDone) try { tigerReflectionCheckDone = true; // class for name this because it's 1.5 specific. if it fails, we // don't want to use the extractor Class.forName(SOME_TIGER_SPECIFIC_REFLECT_CLASS); tigerReflectionAvailable = true; return true; } catch (ClassNotFoundException e) { issue14RuntimeWarning(e,logger); } return tigerReflectionAvailable; }
  2. Thanks to dims (Davanum Srinivas), it is fixed now @ http://jira.codehaus.org/browse/ANNOGEN-22 Cheers, Sudhaker