Thankx for the quick reply Michael. I had a look at "SourceValidator.java" written by you. I will check if its possible to do this way.
We are using SAML and trying to validate it. So hopefully these should be possible to cache. ~Rajesh.B On 6/29/07, Michael Glavassevich <[EMAIL PROTECTED]> wrote:
Hi Rajesh, If the documents you're parsing refer to the same schema documents you can significantly improve the performance by doing grammar caching. The JAXP 1.3 validation API [1] provides a standard mechanism for doing this. Thanks. [1] http://xerces.apache.org/xerces2-j/javadocs/api/javax/xml/validation/package-summary.html Michael Glavassevich XML Parser Development IBM Toronto Lab E-mail: [EMAIL PROTECTED] E-mail: [EMAIL PROTECTED] "Rajesh Balamohan" <[EMAIL PROTECTED]> wrote on 06/29/2007 04:57:13 AM: > Hello Folks, > > We are using xerces parser for creating DOM objects. The size of the > xml is very small in the order or 1 or 2kb. Under load, most of the > threads in weblogic are blocked like the following. > > And the CPU of the box is at 98% in a 4 way box. Looking at the > stacktrace below, I find that most of the time is spent in schema > loading. There are lots of threads with similar stack trace. Are > there any known workarounds for this problem?. > > Is there a way to improve the XMLSchemaLoader? > > The options we use during XML parser creation is as follows.. (Any > help on this issue would be of great help folks). > > // Build a parser to order. > p = new DOMParser(); > p.setFeature("http://xml.org/sax/features/validation > ", true); > p.setFeature ("http://apache. > org/xml/features/validation/schema", true); > p.setFeature(" http://apache. > org/xml/features/validation/schema/normalized-value", false); > p.setFeature("http://apache. > org/xml/features/dom/defer-node-expansion ", false); > > p.setEntityResolver(this); > p.setErrorHandler(this); > > "[ACTIVE] ExecuteThread: '12' for queue: 'weblogic.kernel.Default > (self-tuning)'" daemon prio=6 tid=0x54777e60 nid=0x138 > 0 waiting for monitor entry [0x544bf000..0x544bfb9c] > at java.util.Hashtable.get(Hashtable.java:335) > - waiting to lock <0x0c54f0f8> (a java.util.Hashtable) > at org.apache.xerces.impl.xs.traversers.XSAttributeChecker. > checkAttributes (Unknown Source) > at org.apache.xerces.impl.xs.traversers.XSAttributeChecker. > checkAttributes(Unknown Source) > at org.apache.xerces.impl.xs.traversers. > XSDWildcardTraverser.traverseAny(Unknown Source) > at org.apache.xerces.impl.xs.traversers. > XSDAbstractParticleTraverser.traverseSeqChoice(Unknown Source) > at org.apache.xerces.impl.xs.traversers. > XSDAbstractParticleTraverser.traverseSequence(Unknown Source) > at org.apache.xerces.impl.xs.traversers. > XSDComplexTypeTraverser.processComplexContent(Unknown Source) > at org.apache.xerces.impl.xs.traversers. > XSDComplexTypeTraverser.traverseComplexTypeDecl(Unknown Source) > at org.apache.xerces.impl.xs.traversers. > XSDComplexTypeTraverser.traverseGlobal(Unknown Source) > at org.apache.xerces.impl.xs.traversers.XSDHandler. > getGlobalDecl(Unknown Source) > at org.apache.xerces.impl.xs.traversers.XSDElementTraverser. > traverseNamedElement (Unknown Source) > at org.apache.xerces.impl.xs.traversers.XSDElementTraverser. > traverseGlobal(Unknown Source) > at org.apache.xerces.impl.xs.traversers.XSDHandler. > traverseSchemas(Unknown Source) > at org.apache.xerces.impl.xs.traversers.XSDHandler. > parseSchema(Unknown Source) > at org.apache.xerces.impl.xs.XMLSchemaLoader. > loadSchema(Unknown Source) > at org.apache.xerces.impl.xs.XMLSchemaValidator. > findSchemaGrammar (Unknown Source) > at org.apache.xerces.impl.xs.XMLSchemaValidator. > handleStartElement(Unknown Source) > at org.apache.xerces.impl.xs.XMLSchemaValidator. > startElement(Unknown Source) > at org.apache.xerces.impl.XMLNSDocumentScannerImpl. > scanStartElement (Unknown Source) > at org.apache.xerces.impl. > XMLNSDocumentScannerImpl$NSContentDispatcher. > scanRootElementHook(Unknown Source) > at org.apache.xerces.impl. > XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch > (Unknown Source) > at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl. > scanDocument(Unknown Source) > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) > at org.apache.xerces.parsers.XML11Configuration.parse (Unknown Source) > at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) > at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) > > -- > ~Rajesh.B --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- ~Rajesh.B