High Volume real-time integration/message processing has been a pain point of PI. I had been on a recent client, which had a requirement of processing around a million real time synchronous messages though PI predominantly via the SOAP Adapter for inbound and outbound web services. Though a JAVA-only AEX based integration model was used, the initial performance testing yielded the following issues:
Further research on performance tuning parameters, led us to the SAP FCA or Fast Connector Architecture threads.
What is the new SAP Fast Connector Architecture?
SAP Fast connector Architecture is a shared memory concept, based on memory pipes and MPI buffers. The FCAServerThreadCount threads are used by the J2EE Engine to handle HTTP communication as replacement for classic dispatcher in older Netweaver AS Java architecture.
The above diagram summarizes, how an HTTP Request is processed on the JAVA application server
How do FCA server threads eliminate “System Hung” Scenarios?
In a typical high message volume scenarios, all the worker threads on the PI JAVA stack, could be consumed by messages for a given source or target (this could be an SAP system or a 3rd party web server). In such a case, PI JAVA stack might seem to be hung, not processing any further messages.
The shared memory based FCA scheduler, maintains the state of such running threads. In addition it provides a mechanism to define the maximum thread consumption filter via the FCAServerThreadCount Property. In case any application exhausts the allocated thread pool, and subsequently receives another request, which runs for more than the specified time-threshold, the dispatcher assumes that the thread is hung. Any further HTTP request for the same target receives an HTTP 503 from the application server.
This helps is maintaining the thread pools for messages related to any other application, thus enabling and protecting message parallelism.
The Max receiver setting can be done globally as well as for specific web resources via the ConsumerTypeIsAlias property.
Setting up the FCAServerThreadCount Parameter in PI (The default value is 15 per node)
Using J2EE Configuration Tool. The following are the steps:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
4 | |
4 | |
4 | |
3 | |
3 | |
3 | |
3 | |
3 | |
2 | |
2 |