Hi Karsten,

I had a similar problem (transforming large DOMs built in memory, not
read from disk), and that solution works for me also.  However, I did
not find it necessary to change DEFAULT_BLOCKSIZE (indeed, I didn't even
know about that constant until your post).

When I asked about making IDENT_DTM_NODE_BITS a configurable item (via
system property, etc), I was told that the system shouldn't run out of
DTM_IDs anymore, and therefore I should not have had to make the change.
There is a comment in the code that says it is a compile-time setting,
so you must make sure you build ALL of xalan.jar after modifying this
constant (you have probably read that already).  My understanding is
that because IDENT_DTM_NODE_BITS is a final int, the compiler copies the
value into other xalan classes.  Of course, you could make it non-final
(modifiable), but then you lose the speed that comes with it being a
final int.  I would wonder how much of a hit making it non-final would
really be.

Unfortunately, I haven't had time to put together a test case to "prove"
that the problem still exists.



tlj

Timothy Jones - Sr. Systems Engineer, Development 
(813) 637-5366 - Syniverse Technologies
There are 10 types of people in the world: 
Those that understand binary and those that don't.
 


-----Original Message-----
From: Theis, Karsten [mailto:[EMAIL PROTECTED] 
Sent: Thursday, April 06, 2006 3:31 AM
To: [email protected]
Subject: "Best practice" for setting IDENT_DTM_NODE_BITS and
DEFAULT_BLOCKSIZE


Hi,

I'va had trouble with "no more DTM IDs available" while transforming
very large XMl documents (> 200 MB). 
        
I found a solution by changing IDENT_DTM_NODE_BITS to 8 (in
com.prostep.xml.dtm.DTMManager).

After this change I got an "out of memory error", and I changed
DEFAULT_BLOCKSIZE to 64 (in com.prostep.xml.dtm.ref.DTMDefaultBase).

Now it works fine and the performance has increased dramatically. 
(I think the problem was, that i use str:tokenize very often, and this
consumes DTM Ids, but I'm not sure.)


Now my question:
Is there a a "Best practice" for setting the XALAN constants? 


Thanks,
Karsten

Reply via email to