OutOfMemory Error due to XSLT Transformations


XI uses caching to speed up XSLT transformations. The mappings structures (transformer objects) that are already generated are stored in a mapping pool for reuse. Whenever a mapping is required, a transformer object is required to execute the mapping. Therefore the mapping pool will store as many transformer objects as the number of messages being mapped. By default the maximum number of transformer objects is set to 20, which means that this limit is reached when 20 messages are being mapped using the same XSLT logic. Storing these transformer objects in heap can degrade performance or cause OOM error if the messages are large in size.

To minimize the chances of performance problem due to caching of transformer objects:
1. Apply the latest patch for SAP J2EE ENGINE CORE
2. Reduce the maximum number of transformer objects that can be used in a memory pool to 1 (from default 20)
   a. Call exchange profile http://<server>:<port>/exchangeProfile
   b. Go to category Integration Server -> IntegrationServer.MappingRuntime
   c. Add the AIIProperty com.sap.aii.mapping.transformerPoolLineSize and set its value to 1.

Comments

Popular posts from this blog

OS/DB Migration - CMD. STR, TOC, EXT, R3load, DDLDBS.TPL and more

Fixing Inconsistent Table - Table activation fails due to inconsistency between DD and DB

301 Redirect Using SAP Web Dispatcher