Technical Articles
SAP Process Orchestration 7.5 – Large Message Handling
Overview
For some integrations proxy data can get very large and it causes problems like connection timeouts, incomplete messages. In this blog, I will explain steps to solve this particular issue. Same rules apply to HTTP, SOAP, REST and other HTTP based sender adapters.
Let’s follow the steps with an example scenario: A message is sent to the SAP PO system with a proxy object from the SAP S4 HANA system using XI protocol. XML passing through the SAP PO machine will be compressed and dropped to SFTP server.
Message Flow
The 350 mb file sent to the SAP PO machine will be compressed and sent to the SFTP server.
Things to do
-
Enable large message handling in NWA
To configure Large Message Handling go to http://<host>:<port>/nwa and open the Java System Properties using NWA –> Configuration –> Infrastructure –> Java System Properties. Go to the Services tab page and search for the service name XPI Service: Messaging System.
messaging.largemessage.enabled: This parameter needs to be converted from false to true.
messaging.largemessage.queueTypes – Defines the types of queues for which large message handling is activated. I will configure “Send,Recv“.
Following the changes we made in the system regarding *largemessage*, the parameters should be as follows.
-
Modify ICM max request value
The parameter icm/HTTP/max_request_size_KB through the SAP Management Console and you can set the maximum request size for protocol. Default value is 102400 KB.
I will configure 350 MB = 358400 KB. We find it in ICM parameters and adjust the value to the size you want. We choose and apply your Persist changes in the profile option. Then we save the SAP management console and restart the SAP PO machine.
After completing the configuration, it is necessary to restart the java application server!
-
Compression module in SFTP channel
We create the name of the compressed file in filename, and give the name of the xml file in its content via the module.
First of all, we give the filename extension as *.zip.
We come to the Module tab and add the following modules.
Process Sequence;
AF_Modules/MessageTransformBean | Local Enterprise Bean | contentType |
AF_Modules/PayloadZipBean | Local Enterprise Bean | zip |
Module Configuration;
contentType | Transform.ContentType | text/plain; name=”BigRequest.xml” |
zip | zip.filenameKey | contentType |
zip | zip.mode | zipOne |
Finally all the properties will look like this;
Summary
In conclusion, PO system will hande handle big messages and will be more stable with this configuration. For file-to-file scenarios you can have a look at “Chunk Mode”.
Thanks for reading!
Hi Hasan,
This blog is perfect for how to process large messages. Thank you for sharing.
Sedat
Hi Fatih;
Thanks for your sharing.
Hasan
Hi Hasan,
I have a couple of questions:
I think it would be good reference OSS Note: https://launchpad.support.sap.com/#/notes/1727870 around the global config steps for large messages.
Yes, our purpose here is to ensure that we can receive large messages in both sending and receiving processes.
The zip and content module is the module configuration we apply to compress the related data and determine the content name. (https://help.sap.com/doc/saphelp_nw73ehp1/7.31.19/en-US/45/da9358a1772e97e10000000a155369/content.htm?no_cache=true)
I'm a bit late in blogging, this sapnote "1727870" was published after the solution we found with the SAP team in our XXX project.
I'm sorry for the late reply.
Regards,
Hasan.
Hi,
Do you know how to handle this specifically with REST adapter. I face this problem mainly with REST adapter. ANd the file size is only upto 50MB.
Thanks!
Regards,
Vaishali
Hi Vaishali, the process we have done here is not adapter-based, it is made to allow up to XXX sizes directly on the SAP PO product, you probably won't have any problems when you follow the procedures on the blog.
Regards,
Hasan.