For those, who implement an integration of SAP Manufacturing Execution Solution, I would like to provide some hints from SAP developers on optimizing net web service calls. You should find them useful:
- Avoid “Chatty” calls – that is, avoid sending multiple requests to return the same information repeatedly. If this information can be stored in a stored configuration file or setting (Configuration Parameter in the MEEIL Extensions, State Values in VI or App.Config in your custom applications) to avoid having to make a repeated request for information. Chatty interfaces are expensive and will slow the performance of your application. Taking a close look at what information is absolutely necessary will maximize the efficiency of your application.
- Utilize the DefaultConnectionLimit – use the DefaultConnectionLimit parameter in your custom applications to allow processing more than two HTTP requests from your your application. By default, .NET sets this value to 2. Typically, this value would be 2 x the number of CPU’s on the machine. However, for PCo this setting is handled automatically for you in v18.104.22.168 or higher (set to the same value as the Maximum Dispatch Thread value). The default value is 100 for the Maximum Dispatch Thread in an AgentInstance configuration within PCo. Therefore, it may be necessary to adjust this value to suit your specific situation.
- Adjust Timeouts accordingly – there are various timeout values available to you within your .NET applications. If you are using the MEEILSendActivity, you will adjust the TransactionTimeout value. However, for custom .NET applications you may need to also consider the ReceiveTimeout, SendTimeout and CloseTimeout parameters for the associated binding.