RE: [xsl] Templates.newTransformer synchronization

Subject: RE: [xsl] Templates.newTransformer synchronization
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 17 Jul 2006 15:38:07 +0100
> I want to cache an instance of a Transformer (e.g. using
> Templates.newTransformer()) in the application scope of a web 
> application (multi-threaded). Is there any synchronization 
> problem with this approach (using Saxon)?

A Transformer represents an individual transformation and holds the working
data specific to that transformation, so it must not be used to run multiple
transformations at the same time. A Transformer is serially reusable (you
can start one transformation after finishing another in the same thread). If
you do that then the document pool (the set of documents loaded by the
document() function) is going to be reused, which may or may not be the
right thing to do - if successive transformations are unlikely to load the
documents then it's better to clear them out, to save the memory they
occupy.

Michael Kay
http://www.saxonica.com/

Current Thread