What Is the Enhanced XML Parser?
The enhanced XML parser is an XML parser within Integration Server that leverages Terracotta Ehcache during the parsing process. Depending on memory availability, the enhanced XML parser will use Terracotta Ehcacheto move already parsed portions of the document to a local disk store or off-heap cache (BigMemory). By migrating data, the enhanced XML parser frees up heap space for other documents or other system processes. The ability to move data to a local disk store or BigMemory enables the parser to parse multiple XML documents, including multiple large XML documents, without monopolizing the JVM heap.
The enhanced XML parser produces a DOM tree, specifically a tree of org.w3c.dom.Node objects, that is read-only. The DOM tree is a special representation of an XML document that can be consumed by any program that uses the standard DOM API. Integration Server built-in services that took a node produced by the legacy XML parser as input have been updated to take a DOM node as well. Integration Server also includes services for using the enhanced XML parser to create a DOM node from an XML document.
In contrast, the legacy XML parser parses an XML (or HTML) document by creating a collection of nodes that remain in the heap during the entire parsing process. The legacy parser produces a tree of com.wm.lang.xml.Node objects, which is a tree of nodes that is similar in structure to a DOM object.
Because the legacy XML parser maintains all of the nodes on the heap while parsing, large documents or multiple documents being parsed at once result in a large number of objects on the heap. This can degrade performance during garbage collection. Additionally, if the legacy XML parser exceeds the amount of available heap while parsing, the Java virtual machine (JVM) throws an OutOfMemoryError. To handle large documents with the legacy XML parser, you can increase the heap size or use services like the queryXMLNode service or the nodeIterator services in pub.xmlto limit the portions of the node maintained in the heap. The enhanced XML parser handles large documents, multiple documents, and multiple large documents more efficiently by providing memory management without the use of other services.
Note:
While the legacy XML parser can create a node from an XML document or an HTML document, the enhanced XML parser parses XML documents only.
For more information about
Terracotta Ehcache and
BigMemory, see
Configuring Terracotta Ehcache on Integration Server
.