System Requirements and Installation

Integrating XMLProbe into Enterprise Systems

XMLProbe performance is similar to that of Java-based XSLT engines: it will run happily on modern desktop PCs. For reference, XMLProbe is tested on Intel Pentium III machines clocked at 500-700MHz, with 128MB or 256MB of main memory.

As with XSLT engines, performance is in practice largely a function of the size of the XML instance being processed, as the processor needs to build an in-memory tree of that instance before it can be interrogated. As a rule of thumb, the amount of memory required can be as much as 15 times the instance size.

Because swapping memory to disc will severely slow peformance, it is important to ensure there is enough RAM memory to allow XMLProbe to run without swapping. In practice a machine with at least 1 GB machine of memory is therefore recommended for production environments.

Integrating XMLProbe into Enterprise Systems

For integration, we strongly recommend invoking XMLProbe by spawning a new process with its own JVM.

So, in the case of Java code running on a Windows server, invocation of XMLProbe would be achieved with code similar to that in the following fragment:

Runtime rt = Runtime.getRuntime();
Process p = rt.exec( "cmd /c {my XMLProbe command line}" );
int ret = p.waitFor();
// etc.

The process executed via shell would emit a report which could then be read back by the host process. Obviously there would need to be some mechanism for guaranteeing unique identity for these temporary files.

The reason for recommending this is that heavy use of DOM causes severe memory fragmentation, and so by using a new JVM you avoid compromising your main process.