Registration

Dear SAP Community Member,
In order to fully benefit from what the SAP Community has to offer, please register at:
http://scn.sap.com
Thank you,
The SAP Community team.
Skip to end of metadata
Go to start of metadata

Purpose

The purpose of this page is to enable you to configure/tune your Process Integration (PI) and/or Process Orchestration (PO) system to handle moderate to high volume synchronous scenarios.

Overview

This document will explain the most common solutions to some of the known errors, which occur during synchronous message processing involving several different PI Adapter types. It will show you how to check your existing parameter values and how and where to increase these, if necessary.

Background

Many issues during synchronous communication are caused by a lack of sufficient resources in PI to handle the volume. By tweaking some of these tuning parameters this will help to proactively prevent these issues from occurring. Of course, there are also other issues which can affect synchronous message processing e.g. network issues, receiver system tuning etc.

Recommended Actions: 

  1. Ensure a sufficient number of HTTP Worker threads (FCAServerThreadCount parameter) are available

    The default value is 15, try to find a value that meets your own specific needs without setting the parameter too high. You could start-off with a value of 50 and increase in small increments if this still does not have the desired effect.

    To check your current settings:

    Go to http://<server>:<port>/nwa/sys-config
    -> Services
    -> filter for HTTP
    -> select the HTTP Provider
    -> filter for FCAServerThreadCount

    To verify if the HTTP Worker Threads are being exhausted during synchronous message processing:
    - Capture 4 Java Thread Dumps at a time interval of 30 seconds by using the XPI Inspector tool with Example 51 (Performance Problem)
    - You can use the Java Thread Dump Viewer tool, available in SAP Note 1020246 Thread Dump Viewer for SAP Java Engine, to read the Thread Dumps. See also Thread Dump Viewer for SAP NetWeaver AS Java

    To increase the value:

    If you need to increase the value, see the SAP KBA 1945745 How to increase HTTP Worker (FCA) threads in PI, for the details on how to do this.

  2. Ensure a sufficient number of queues/threads available to the relevant PI Adapter type

    The number of queues/threads available for Inbound/Outbound synchronous calls can be tuned to meet specific requirements. In most cases the default value of 5 is too low. This could be increased to 10 or possibly 15 (even higher if required).

    To check your current settings:

    Go to http://<server>:<port>/pimon
    -> Adapter Engine
    -> Adapter Engine Status
    -> Additional Data (tab)
    -> filter for relevant adapter type e.g. SOAP

    For more details see the SAP KBA 1662269 How to Monitor the PI Adapter Framework queues.
    Note:
    - The *Call and *Rqst queues are for synchronous messages Sender/Receiver queues.
    - ICO scenarios only use the Sender queues – see SAP Note 1557036 Integrated Configuration Objects (ICO) scenarios use Messaging System Sender Queues only.

    To increase the number of queues/threads:
    How to do this is described in the blog below:
    Messaging System queue properties after XI 3.0 SP19 / XI 7.0SP11

    In short, you need to do the following:
    Go to the Config Tool
    -> Navigate Service com.sap.aii.af.svc
    -> (property) messaging.connectionDefinition
    -> Append…
    (name=SOAP_http://sap.com/xi/XI/System,  messageListener=localejbs/AFWListener, exceptionListener=localejbs/AFWListener, pollInterval=60000, pollAttempts=60, Send.maxConsumers=5, Recv.maxConsumers=5, Call.maxConsumers=10, Rqst.maxConsumers=10)

    …Onto the existing parameter value
    (name=global, messageListener=localejbs/AFWListener, exceptionListener=localejbs/AFWListener, pollInterval=60000, pollAttempts=60, Send.maxConsumers=5, Recv.maxConsumers=5, Call.maxConsumers=5, Rqst.maxConsumers=5) – note: never change these parameters

    Afterwards, the parameter value should look like this: (name=global, messageListener=localejbs/AFWListener, exceptionListener=localejbs/AFWListener, pollInterval=60000, pollAttempts=60, Send.maxConsumers=5, Recv.maxConsumers=5, Call.maxConsumers=5, Rqst.maxConsumers=5)(name=SOAP_http://sap.com/xi/XI/System,  messageListener=localejbs/AFWListener, exceptionListener=localejbs/AFWListener, pollInterval=60000, pollAttempts=60, Send.maxConsumers=5, Recv.maxConsumers=5, Call.maxConsumers=10, Rqst.maxConsumers=10)

    Or if you have tuned multiple Adapter types, below is a possible example of how this would look:
    (name=global, messageListener=localejbs/AFWListener, exceptionListener=localejbs/AFWListener, pollInterval=60000, pollAttempts=60, Send.maxConsumers=10, Recv.maxConsumers=10, Call.maxConsumers=10, Rqst.maxConsumers=10)(name=SOAP_http://sap.com/xi/XI/System, Send.maxConsumers=10, Recv.maxConsumers=10, Call.maxConsumers=15, Rqst.maxConsumers=15)(name=File_http://sap.com/xi/XI/System, Send.maxConsumers=15, Recv.maxConsumers=10, Call.maxConsumers=10, Rqst.maxConsumers=10)(name=JDBC_http://sap.com/xi/XI/System, Send.maxConsumers=10, Recv.maxConsumers=10, Call.maxConsumers=10, Rqst.maxConsumers=10)

    Note: it is very important to test these parameter changes in a Dev/QA environment prior to introducing to Production.

    See Also:
    SAP Note 1493502 Max Receiver Parameter for Integrated Configurations
    SAP Note 1916598 *NF* Receiver Parallelism per Interface an enhancement was introduced
    SAP SCN - Tuning the PI Messaging System Queues

     

  3. SOAP Adapter timeout settings

    For SOAP Adapter scenarios, tuning the Timeout values may help. However, pay careful attention to the information provided in the SAP Note 1593920 Synchronous SOAP sender calls: fine tune PI under high load, regarding this.

    As per note 1593920:
    “Increasing the value would lead to less expired messages, but the time for processing a single message will increase and if there are too many incoming requests, a lot of messages would occupy SOAP threads to wait to be processed and the system may exhaust its application threads pool. In this case, make sure that the system has enough HTTP Worker threads and application threads, otherwise the system may completely hang. Application threads count is in all cases manipulated by MaxThreadCount property of Application Thread Manager on the server.

    Manipulate the values of the SOAP Adapter timeout property, depending on the module used:
    - XI.Timeout if XISOAPAdapterBean is used or
    - syncTimeout if CallSapAdapter is used

    Decreasing the values would lead to more expired messages but there is theoretically less probability of performance issues.

    To increase/decrease these parameters:

    See the SAP KBA 1621719 Timeout parameters in SOAP Sender/Receiver Adapter

    See Also:
    SAP Note 937159 XI Adapter Engine is stuck

  4. RFC Adapter timeout settings

    See the SAP Note 730870 FAQ XI 3.0/ PI 7.0/ PI 7.1/ PI 7.11/ PI 7.2/ 7.3 RFC Adapter - specifically question 14

  5. Ensure there are sufficient system resources/hardware

    Increasing the number of Java Server Nodes and/or adding a new Instance can help. See SAP KBA 1827219 Minimum number of J2EE Server Nodes for Productive SAP Process Integration (PI)

Related Content

Related Documents

SAP SCN: How to Investigate Timeouts In Synchronous XI PI Scenarios

SAP SCN: Tuning the PI Messaging System Queues

SAP SCN: SAP NetWeaver Process Integration Performance Check - Analyzing Performance Issues and Possible Solution Strategies

SAP SCN: PI Best Practices: Sizing & Performance Tuning

Related SAP Notes/KBAs

SAP Note 894509 PI Performance Check

SAP Note 806546 XI 3.0/7.0/7.01: XI Troubleshooting Guide
SAP Note 1060264 PI Troubleshooting Guide 7.1
SAP Note 1452440 PI Troubleshooting Guide 7.30
SAP Note 1665708 PI Troubleshooting Guide 7.3 EHP1


__________________________________________________________________________________________________________