Hi, Kumar.

Kumar Pandey <[EMAIL PROTECTED]> wrote on 2005-06-06 12:12:37 PM:
> I use the same static xml data DOM tree for
> transformations in different threads.
> 
> Are you suggesting that I need to synchronize the read
> access to this data DOM tree for transformation from
> different threads?

     Yes, that's correct.  See the last sentence of "What is the Document 
Object Model" from the DOM Level 3 Core specification,[1] which states, "
DOM Level 3 does not specify multithreading mechanisms," and see also the 
Xerces-J FAQ.[2]

     I recall from some previous development work I did on Xerces-J, that 
the Xerces-J DOM implementation caches information in a DOM tree even 
during read access, so that particular implementation doesn't support any 
unsynchronized access to a DOM tree across multiple threads.

     If synchronizing on the DOM tree for the entire transformation is too 
expensive, you might consider using an identity transform to transform 
your DOM tree to SAX events, and then use those SAX events as input to 
your actual transformation.  I don't know whether that would be an 
improvement for your purposes.

Thanks,

Henry
[1] 
http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/introduction.html#ID-E7C30826
[2] http://xml.apache.org/xerces2-j/faq-dom.html#faq-1
------------------------------------------------------------------
Henry Zongaro      Xalan development
IBM SWS Toronto Lab   T/L 969-6044;  Phone +1 905 413-6044
mailto:[EMAIL PROTECTED]


Reply via email to