Old versions of Xalan could relatively easily run out of handles for DTM (Document Table Model) trees, which were used to reference both complete documents and document fragments constructed as variable values. The current developer's release should have tremendously improved that situation -- both by managing the DTM handles differently (more dynamically trading off number of documents against size of documents) and by more effectively discarding and re-using DTM storage space (via the "tail-pruning" code, which unfortunately was broken in release 2.3.1).
So to avoid getting this particular exception in the future, your first step is to upgrade Xalan to the current developers' release.
If you have _EXTREMELY_ heavy variable creation, it is theoretically still possible to run out of DTM handles. However, I don't think it's likely to happen unless you're processing *HUGE* documents, or performing entirely unreasonably deep recursion.
If you can provoke this with current Xalan code, please tell us how you're doing so; we'll want to look at in the lab and decide whether you've found a bug or a legitimate storage constraint.
______________________________________
Joe Kesselman / IBM Research
- DTMException Trace Windham
- Joseph Kesselman
