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]