Edit online

DITA-OT Transformation Takes a Long Time to Process

Problem

A DITA transformation takes an extremely long time to process (over an hour, for example).

Cause

Large delays in DITA-OT processing are usually caused by intensive disk operations, CPU usage, or connections to remote websites. The DITA-OT processing is very disk-intensive, each stage takes the entire content from the transformation temporary files folder, reads it, modifies it, and then writes it back.

Solution

There are several things you can try to troubleshoot this problem:
  • If you are using a shared or remote drive, it is recommended to specify a local drive for the output and temporary files directory (edit the transformation scenario and in the Output tab, select a local directory for Temporary files directory and Output directory).
  • If you want to test if the publishing has a problem downloading remote resources, you could disable the network adapter on the computer and then try to publish. The purpose is to see if the publishing finishes without any reported error about obtaining a certain HTTP resource.
  • Using DTDs instead of XML Schemas is faster. This is because of a default transformation parameter called args.grammar.cache that only works for DTD-based DITA topics.
  • You can increase the memory available to Oxygen XML Editor. Sometimes, just increasing the amount of memory available to the DITA-OT process may be enough to lower the time necessary for the publishing to run.
  • You can enable some logging to help you determine which stage in the process is taking a long time. Edit the transformation scenario and in the Advanced tab, enter logger org.apache.tools.ant.listener.ProfileLogger in the Additional arguments field. Then go to Options > Preferences > DITA > Logging and select Always for the Show console output option.
  • You could try disabling antivirus applications since the publishing process is very disk intensive and certain antivirus application might slow down the process.
  • If the published DITA map is part of a larger DITA project with lots of maps and topics, references from topics in the current map to topics in other sub-projects might result in problems resolving those references. You could look in the output folder to see if the number of HTML documents match the number of DITA topics in your map.