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
