[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

document() runs out of memory


Subject: document() runs out of memory
From: Brad Sommerfeld <bsommerfeld@xxxxxxx>
Date: Tue, 21 Mar 2000 13:31:53 -0600

Title: document() runs out of memory

I am using the document function to read in external files but seem to be exceeding my memory limits.  I believe it is because the previously read files are still being held in memory but I don't know how to remove them.

The main template is:

  <xsl:template match="/">
    <xsl:for-each select="document('all_forms_list.xml')/someURIs/file/text()">
    <xsl:variable name="contents" select="document(string(.))"/>
    <xsl:apply-templates select="$contents//XFDL"/>
    </xsl:for-each>  
  </xsl:template>


There is a single document all_forms_list.xml which is a list of URI's to be read.  When the list gets to about 250 URI's the parser exists with an out of memory exception.

I am using Apache Xalan 0.19.2 with 256meg of memory on a pentium running NT 4.0.

I ran a test to determine if it was the input or the output trees that were exceeding the memory and concluded that it was the inputs.  I doubled the size of the output tree (by executing the templates 2X) and still failed at the same number of inputs even though my outputs went from ~3000 lines of XML to ~6000 lines of XML.

I'm afraid that the variable $contents is being created scoped within the for-each and that I'm getting a new one everytime but I don't know how to prevent it.  Any ideas?

Brad Sommerfeld


Current Thread
Keywords
xml