Monday, December 10, 2007

Which mapping type should I use?

Introduction

Comparing the runtime performance and stability of 6 kinds of mapping programms is a frequently discussed theme around Netweaver / XI.
  • Message Mapping
  • Java Mapping (DOM)
  • Java Mapping (SAX)
  • XSL Styleheet in Java stack
  • ABAP Mapping (DOM)
  • XSLT running in ABAP stack
have been tested to compare capability and robustness.

Test Scenario

You will find here a short description of the test environment. For more details have a look to the appendix.

Hardware

The Web Application Server is running WIN 2000 OS with 2 GIG RAM using 2 CPUs with ~1 GHz.
System Information

Scenario

The message flow is quite simple.
The XI file adapter is reading a text file, tranfering it as XML to the Integration Engine. The corresponding mapping program will be executed and the result is routed to R/3 system via RFC adapter.
Component View

Mapping Task

The example was choosed as basic as possible. The file adapter converts 10 columns to fields f01 - f10. They are disposed in repeatable field Set . The mapping result must be understoodable by the RFC adapter, so it has to be valid for the XML schema, what was generated during import of RFC into IB Repository. Each 'Set' is now an 'item'. f01 will be mapped to FIELD1 .
Mapping Task

Test Cases

  • Performance: Sending of 80 messages (each 0,57 MB) in modus EOIO. Taking first start time and last end time. The performance was tested 3 times for each mapping program. The determined runtime is an average value.
  • Stability: Increasing the volume of single messages til appearing of runtime errors. Ambition was to find out volume of biggest success mesaage and smallest error message.

Results



Perfomance Test

Mapping Program Average Runtime in sec for 80 Msg (0,57 MB) Speed (MB/h)
Message Mapping 209 786
Java (DOM) 210 782
Java (SAX) 208 789
XSL/Java 201 817
ABAP (DOM) 281 584
XSL/ABAP 184 892


Stability Test

Mapping Program Highest Volume (MB)
Success Messages
Lowest Volume (MB)
Error Messages
Message Mapping 50,2 57
Java (DOM) 42,8 50,2
Java (SAX) 79,8 95,8
XSL/Java 57 71,3
ABAP (DOM) 6,8 8,3
XSL/ABAP 6,8 8,3

Discussion

It should be clear that these results are not representative regarding absolute performance or stability as the results are strongly dependend from hardware parameters. The environment wasnt optimized for the tasks especially not for mappings running in the ABAP stack (ABAP Profile / transaction RZ10). The processing time was taken in SXMB_MONI for the whole processing at Integration Server and not only for the mapping. Probably the mapping took the biggest part of processing time. The tests should allow following assumptions:
  • XLS has the best performance, what was not expectable!
    Please have a look to SAP XI Library / Designing Mappings / Overview / Comparing Mapping Program Types
  • Mappings running in the Java stack are much more stabil than mappings at ABAP stack


Appendix

R/3 Profil of WAS

RZ10
RZ10

Description of Error Messages

Message Mapping:

  • SXMB_MONI / Status: Recorded for Outbound Processing
  • SMQ2: SYSFAIL / TIME_OUT
  • ST22: TIME_OUT
    The program "????????????????????????????????????????" has exceeded the maximum permitted runtime without interruption, and has therefore been terminated.- Short Dump because ABAP Profile Parameter rdisp/max_wprun_time: 600 sec

Java (DOM)

  • SXMB_MONI / Status: Automatic Restart
  • SMQ2: execute LUW again
  • Java stack crashes and has to be restarted (SMICM)

Java (SAX)

  • SXMB_MONI / Status System Error
  • SMQ2: SYSFAIL / HTTP_RESP_STATUS_CODE_NOT_OK
  • Java stack crashes and has to be restarted (SMICM)

XSL/Java

  • SXMB_MONI / Status System Error
  • SMQ2: SYSFAIL / HTTP_RESP_STATUS_CODE_NOT_OK
  • Java stack crashes and has to be restarted (SMICM)

ABAP and XSL/ABAP

  • SXMB_MONI / Status: Recorded for Outbound Processing
  • SMQ2: SYSFAIL / Unable to fulfil request for 7339212 bytes of memory space.
  • ST22: SYSTEM_NO_ROLL

Grafic Message Mapping

Message Mapping

Source Code ABAP

Source Code XSL

Source Code Java DOM

Showing messages 1 through 12 of 12.

No comments:

Blog Archive