Optimizing Database connection availability with the Intercompany Solution
The purpose of this blog post is to highlight some of the key guidelines and recommendations to optimize the initial setup of the Intercompany Solution for SAP Business One for better connectivity with SAP Business One company databases, both on Microsoft SQL Server and SAP HANA.
As an SAP Business One Support Engineer working with the Integration Framework for SAP Business One (B1i) and the Intercompany Solution, the question of how to optimize connectivity between the Intercompany Solution and a database management system (DBMS) is quite frequent.
The Intercompany Solution for SAP Business One is a B1i scenario consisting of multiple processing steps and each one of them establishes multiple DI API connections to the Database, through the DI Proxy, during their execution. This means that, for each task that the Intercompany Solution is performing (e.g. Business Partner replication, Document replication, …), multiple DI calls will be made, and a DI Proxy needs to be immediately available to respond, otherwise the task will be delayed.
Given this context, it can be important to have a wide number of DI Proxies available to expedite the Intercompany Solution task execution if the workload on the system requires it.
We recommend creating an initial DI Proxy Group (SAP Note 1993784) with 5 DI Proxies and assigning it to all companies. A DI Proxy Group is a pool of available DI Proxies that when invoked returns the first available DI Proxy to process a DI API call.
However, the performance of the DI Proxy Group should be further improved by testing/adjusting it to the workload of the environment. For example, if one of the companies in the landscape has a higher workload, it makes sense to create an exclusive DI Proxy Group for this company. In this manner, if you have an intensive workload in all companies it’s recommended to have a DI Proxy Group exclusively for each company, with 2 or 3 DI Proxies, for example.
Bear in mind, that when first setting up the Intercompany Solution if replicating large amounts of master data between companies is required, the best way is to use DTW, as outlined in SAP Note 2342823.
Evidence that more DI Proxies are required in an Intercompany landscape setup, is the “All proxies within proxy-group [group_name] were traversed” exception showing up in the failed messages section of the B1i message log. If you find this exception, please test adding more DI Proxies. Additionally, if this type of exception persists, check SAP Note 1924504 regarding adding two additional parameters on the DI Proxy configuration to adjust it to your environment.
Other evidence that more DI Proxies are required, are a slow processing B1i queue and the “Resource is busy” exception on failed messages.
On the opposite side to the above exceptions, is the exception “Cannot obtain lock” showing up on the B1i message log or deactivated IPO-Steps. This means that there might be too much concurrency in the B1i database and reducing the number of DI Proxies is a possible solution.
Another guideline for Intercompany landscapes is, when performing Financial consolidation, make sure to use one DI Proxy exclusively for each one of the Consolidation companies.
To summarize, the above guidelines and considerations should allow you to setup a robust environment allowing easy communication between the Intercompany Solution for SAP Business One and your DBMS. It is important to understand that depending on the workload on the environment, increasing the number of DI Proxies and DI Proxy groups might be necessary and some experimentation might also be required to find the right balance.
For more information and technical troubleshooting you can also refer to the SAP Notes listed below in the references section.
Filipe Vicente, SAP Business One Support Engineer