Introduction
Interfaces, both A2A ( Inter-organization) and B2B ( Intra-Organization ) are the heart of any enterprise system and businesses depend heavily on the interfaces for its critical success. Its not very uncommon when interface failures bring business to standstill. Critical business processes such as Inventory, Payments, Sales, Purchasing, Order fulfillment etc are the core of any business and business rely heavily on interfaces to carry out these cross business processes. This makes the make role of Integration Middleware's ( or ESB's in the new avatar ) so critical for business. Given the volume of critical transaction's flowing through these applications it make sense for business to invest in mitigating risks by scaling, load balancing and ensuring high availability of these applications.The same is true with enterprises having a SAP footprint and using SAP PI/PO.
The Requirement
Lets look at how to achieve the above mentioned business goals using SAP PI. SAP web dispatcher is a SAP solution for "software switching". However, more often than not IT organizations already have similar investments even before SAP comes in the picture. The goal of this paper is to demonstrate how we can achieve the same goals, using one such popular 3rd party softwareF5(http://www.f5.com/it-management/solutions/load-balancing/overview/), leveraging existing software investments.
Below is details on how to achieve scalability and load balancing of SAP PI using F5.
The Solution
Pre-requisite:
- Full Off-line Back-up of PI DB
- Full Back-up of File System of PI central Instance
- Back-up ofinstance.propertiesfile of PI central Instance
- Full Export of Existing Exchange Profile
Design for Scaled PI (Dual Stack):
Configuration Steps:
1. Pipeline URL in SLD
The Adapter Engine uses the pipeline URL as defined for the Integration Server’s business system for sending messages to the Integration Server (sender adapter). Access the SLD and navigate to Business Landscape. Select the Integration Server’s business system and change the Pipeline URL so that it points to the load balancer.
2. Full Cache Refresh in ABAP & JAVA Stack
Please run a full Cache Refresh both in PI ABAP & Java stack.
- For full cache refresh in ABAP à Please go to SXI_CACHE à Run a Full cache refresh from menu
- For full cache refresh in JAVA à Please access following URL(load balanced URL) and login with cache refresh access
http://<Load_Balanced_URL>:50900/CPACache/refresh
- Please wait till cache refresh completes.
3. Adapter Engine Configuration in Configtool
The Adapter Engine’s messaging system registers its communication parameters, host name, and HTTP port with the SLD. These parameters are then read by the Integration Server and compiled into the target URL. The Integration Server sends the messages to this target URL if they are to be processed by the Adapter Engine (receiver adapter).To ensure that the Adapter Engines of all dialog instances are called, each JEE server node must register the same parameters pointing to the load balancer with the SLD. To do this, you can change the global configuration, or change each cluster configuration consistently.
- Start configtool à navigate to template à services à com.sap.aii.af.cpa.svc.
Enter the following for the load balancer:
- Host name for SLD.selfregistration.hostName
- HTTP port for SLD.selfregistration.httpPort
- HTTPS port for SLD.selfregistration.httpsPort
Save the changes and restart the J2EE cluster.
4. Change in Exchange Profile Parameter
- Login to Exchange Profile Administration Console
- Check that the self-registration was successful and that the new host name is available.
- Click on Connection Button à Change Hostname to NLB details as showed in following screen
Before Change
- Save your change à Click on Save Configuration
Section 2 – Exchange Profile Parameter Change
- In Exchange Profile Administration Console click on
- And then change following parameter value from existing physical server FQDN to NLB FQDN as done following
Under Connections
- com.sap.aii.connect.cr.name
- com.sap.aii.connect.directory.name
- com.sap.aii.connect.integrationserver.name
- com.sap.aii.connect.integrationserver.sld.name
- com.sap.aii.connect.landscape.name
- com.sap.aii.connect.repository.name
- com.sap.aii.connect.rwb.name
Under Integration Builder
- com.sap.aii.ib.server.connect.webas.r3.ashost
Under RuntimeWorkbench
- com.sap.aii.rwb.server.centralmonitoring.name
- com.sap.aii.rwb.server.centralmonitoring.r3.ashost
- Restart PI system and after PI system is up, please take export of latest Exchange Profile.
5. Change in PI ABAP Stack
Section 1 – Definition change for destination INTEGRATION_DIRECTORY_HMI
- Login to PI ABAP stack à Transaction Code SM59 àHTTP Connections to ABAP system à INTEGRATION_DIRECTORY_HMI
- Open the RFC definition and change Target Host Details under Technical System Settings
Section 2 – Definition change for SLDAPICUST
- Please go to transaction code SLDAPICUST and change hostname details
- Save your change and click on test button
Section 3 – Integration Server Definition change in SXMB_ADMIN
- In transaction code SXMB_ADMIN, please click on following
- Make the change in as in following screen to reflect F5 details instead of physical server details
6. Full Cache Refresh in ABAP & JAVA Stack
Please run a full Cache Refresh both in PI ABAP & Java stack.
- For full cache refresh in ABAP à Please go to SXI_CACHE à Run a Full cache refresh from menu
- For full cache refresh in JAVA à Please access following URL and login with cache refresh access
http://<Load_Balnced_URL>:50900/CPACache/refresh