Xalan DTMManager.newInstance performance issue

abodudelod

New Member
We have inherited an application (Java-based, running on WebLogic 10.3.5) that makes extensive use of JSTL XML tags, and particularly of XPath selectors. Quickly we have run into some performance problems due to the implementation of these tags and how the DTMManager class is first resolved then instantiated by the DTMManager.newInstance method.The DTMManager class name lookup issue has been previously documented and was solved by setting the \[code\]com.sun.org.apache.xml.dtm.DTMManager\[/code\] system property.However, once the class name has been found, the \[code\]com.sun.org.apache.xml.internal.dtm.ObjectFactory.findProviderClass\[/code\] method asks the (not null) class loader to load the class definition and it never caches the result! In a WebLogic environment, this operation is very expensive and eats a significant portion of our response times.Is there a reason why the class definition is never cached? And is there a way to avoid the class definition to be loaded every time?Thanks a bunch.Update Similar behaviour can be observed for the \[code\]com.sun.org.apache.xerces.internal.impl.dv.DTDDVFactory\[/code\] class - the ClassLoader reloads the class definition on every call to \[code\]DTDDVFactory.newInstance\[/code\].
 
Back
Top