SAP PO – increase performance…
Below You’ll find some tips which should be kept in mind if You want to increase the performance of Your SAP PO system. I note that these are only guidelines and more details You can found in the attached notes… The article will be divided into several sections.
- Increase adapter threads
- Increase MaxThreadCount for inboundRa – IDOC
- Increase MaxThreadCount for outboundRa – IDOC
- Shared memory threads
- Queue parallelism
- Increase db connection pool and set db vendor
Increase adapter threads
Documentation of the XI Messaging System Service Properties: https://launchpad.support.sap.com/#/notes/791655
Tuning the PI/PO Messaging System Queues:
https://blogs.sap.com/2011/01/26/tuning-the-pi-messaging-system-queues/
Increase of IDoc_AAE Adapter threads not working:
https://launchpad.support.sap.com/#/notes/0002799313
For example: Java System Properties -> Service -> Service component name: com.sap.aii.af.svc → messaging.connectionDefinition
(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, messageListener=localejbs/AFWListener, exceptionListener=localejbs/AFWListener, pollInterval=60000, pollAttempts=60, Send.maxConsumers=50, Recv.maxConsumers=50, Call.maxConsumers=100, Rqst.maxConsumers=100)(name=IDoc_AAE_http://sap.com/xi/XI/System, messageListener=localejbs/AFWListener, exceptionListener=localejbs/AFWListener, pollInterval=60000, pollAttempts=10, Send.maxConsumers=30, Recv.maxConsumers=30, Call.maxConsumers=30, Rqst.maxConsumers=30)
Increase MaxThreadCount for inboundRa – IDOC
Parameters:
Java System Properties > ApplicationThreadManager > ExecutorPoolMaxSize = 60 Application Resources > inboundRa (Resource Adapter) > Properties > MaxReaderThreadCount = 10
Each IDoc_AAE resource adapter is a single executor and can start up to (PercentageOfParallelismAllowed/100) * ExecutorPoolMaxSize executor threads. For example if the ExecutorPoolMaxSize is set to 60 and PercentageOfParallelismAllowed is set to 30, then the inboundRA resource adapter can start up to 18 parallel connections. If the MaxReaderThreadCount property is set to a higher value the resource adapter will not be able to start.
As other applications may also use executor threads it is not always advisable to increase the PercentageOfParallelismAllowed property of the ApplicationThreadManager with a much higher value. If one wants to increase the maximum connections for a resource adapter then the ExecutorPoolMaxSize may also be increased – for example if inboundRA connections should be set to 20, then ExecutorPoolMaxSize may be set to 80 and PercentageOfParallelismAllowed could stay to 30.
Increase MaxThreadCount for outboundRa – IDOC
To improve performance and tie the Lifecycle of gateway with that of Adapter engine it is possible to use local gateway. There is local gateway available with Adapter engine installation.For this you need to set the 'Local' property to true. When You save maxConnections on the channel level change value to -1 after start/stop. Pernament settings You can set in JavaIdocAdapter - but this change will be for all channels. Manual create JCA Connection Factory according to page16 in this document.
MaxConnections on the adapter level (below) is taken from above place. This value is for all IDOC adapters.
Shared memory threads
Notes: 1748779
Queue parallelism
Check Note: 1557036 and this blog
Increase db connection pool and set db vendor
Check note: 1600085
Start configtool – cluster-data – template – instance – services – dbpool
Set dbpool property values as follows:
sysDS.maximumConnections = 250 sysDS.connectionLifetime=90
Check note: 1650472
Set a correct value for -Ddb.vendor java parameter in ConfigTool: ORACLE