Yes, you are right. We are caching the templates of the xsl documents that we use. Perhaps it is also important to say, that xalan is used to generate a servlets' output stream, so we are in a multithreading environment. The function that generates the output is marked as synchronized (non-static) and it is the only place where xalan is used in this application.
Thomas P.S.: I appologize, if you get this email twice. I am not really familiar whith posting mails to this mailing list... :) > > > --- Urspr�ngliche Nachricht: --- > Datum: 31.01.05, 22:25 > Von: John Gentilin <[EMAIL PROTECTED]> > An: THEN <[EMAIL PROTECTED]> > Betreff: Re: memory leak in xalan 2.6.0? > > Is just the XML data held in memory or are you trying to cache XSL > transformers also ?? > If so are you caching Transformers or Templates ?? > > -John G > > [EMAIL PROTECTED] wrote: > > >Hello, > > > >we use xalan 2.6.0 with xerces 2.6.2 on BEA Weblogic Server V8.1. We > configured the JRE that both, xalan and xerces, are prepended to the > bootclasspath (-Xbootclasspath/p:.../lib/xercesImpl.jar:.../lib/xml- > apis.jar:.../lib/xalan.jar). > > > >We use xalan to transfer xml streams that are hold in memory to html > output that is sent back as response to the client. We use XSLT standard > 1.0. > > > >Since we suspected a meory leak, we used a profiling tool to inspect our > application. And the profiler "said" that two leaks have their home in the > xalan/xerces code part. > > > >Here are excerpts from the 2 stack traces that the profiling tool gave us > as result (I can send you the full screen shots if you need them): > > > >------------------------------------------------ > >The first trace (a leak of type char[]): > >------------------------------------------------ > >org.apache.xalan.transformer.TransformerImpl.transform() > >... > >org.apache.xml.dtm.ref.DTMManagerDefault.getDTM() > >weblogic.apache.xerces.parsers.AbstractSAXParser.parse() > >weblogic.apache.xerces.parsers.XMLParser.parse() > >weblogic.apache.xerces.parsers.DTDConfiguration.parse() > >... > >weblogic.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument() > >... > >weblogic.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanAttribute() > >weblogic.apache.xerces.xni.XMLString.toString() > >-------------------------------------- > > > >------------------------------------------------ > >The second trace (a leak of type int[]): > >------------------------------------------------ > >org.apache.xalan.transformer.TransformerImpl.transform() > >... > >org.apache.xml.dtm.ref.DTMManagerDefault.getDTM() > >weblogic.apache.xerces.parsers.AbstractSAXParser.parse() > >weblogic.apache.xerces.parsers.XMLParser.parse() > >weblogic.apache.xerces.parsers.DTDConfiguration.parse() > >... > >weblogic.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument() > >... > >weblogic.apache.xerces.impl.XMLNameSpaceBinder.startElement() > >... > >org.apache.xml.dtm.ref.sax2dtm.SAX2DTM.startElement() > >org.apache.xml.dtm.ref.DTMDefaultBase.indexNode() > >org.apache.xml.dtm.ref.DTMDefaultBase.ensureSizeOfIndex() > >-------------------------------------- > > > >Is this a known bug? We would be very happy if you were able to help us > to remove those 2 leaks. > > > >Thanks in advance! > > > >Thomas > > > > > > > > > >-- > >Ein Service von http://www.sms.at > > > > > > > -- Ein Service von http://www.sms.at
