If I recall correctly, TransformerImpl is not threadsafe, and should be
used for one transformation only.

So, for each distinct stylesheet, you should have a Templates object,
used to create a Transformer for each use.  Then there should be no
contention for anything used by the Transformer.

Jeff

On 12/12/2011 6:16 AM, kaja.mohid...@wipro.com wrote:
> Hi all,
> 
>  
> 
> My java application (running in “Java HotSpot(TM) Server VM (build
> 14.0-b16, mixed mode)” on Sun Netra T5440) using Xalan transforms
> thousands of XML files (uses 16 Threads). After it transforms about 5000
> XML files, it becomes slow and it starts transforming very slowly and it
> takes 2mins for some transformation (where the first transformation of
> similar XML with same XSLT ran in just 2 secs). One of the Thread Dump
> is as follows
> 
>  
> 
> java.lang.Thread.State: BLOCKED
> 
>           at java.util.Vector.elementAt(Vector.java:426)
> 
>           - waiting to lock <85094f> (a java.util.Vector) owned by
> "AggregatorThreadPoolThreadPool-Thread-1" t@17
> 
>           at
> org.apache.xalan.templates.ElemTemplateElement.executeNSDecls(ElemTemplateElement.java:1182)
> 
>           at
> org.apache.xalan.templates.ElemTemplateElement.executeNSDecls(ElemTemplateElement.java:1159)
> 
>           at
> org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1318)
> 
>           at
> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> 
>           at
> org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374)
> 
>           at
> org.apache.xalan.templates.ElemForEach.transformSelectedNodes(ElemForEach.java:423)
> 
>           at
> org.apache.xalan.templates.ElemForEach.execute(ElemForEach.java:263)
> 
>           at
> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> 
>           at
> org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374)
> 
>           at
> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> 
>           at
> org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1374)
> 
>           at
> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2411)
> 
>           at
> org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2281)
> 
>           at
> org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1367)
> 
>           - locked <4a1e3a> (a org.apache.xml.serializer.ToXMLStream)
> 
>           at
> org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:709)
> 
>           at
> org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1284)
> 
>           - locked <24f1ed> (a java.lang.Boolean)
> 
>           at
> org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1262)
> 
>  
> 
> I couldn’t find any bug other than 2336 and 2344 that talks about
> Vector. Please share any info, by which I can achieve consistent
> performance.
> 
>  
> 
> Thanks in advance,
> 
>  
> 
> With regards,
> 
> R Kaja Mohideen

Reply via email to