Some tips for Process Integration – High Availability setup
1. Naming schema changes for some XI/PI components in SLD
For High Availability (HA) setup, the SLD naming schema for Integration Server, Domain and Adapter Engine are a little bit different.
- The SLD names of Integration Server and Domain are:
is.<cisysnr>.<cihost> and domain.<cisysnr>.<cihost>
The Central Instance hostname is taken from the ABAP profile parameters.
- The SLD name of Adapter Engine contains the name of the J2EE Database:af.<system_id>.<j2ee_dbhost>
Because several Adapter Engines can be part of the same domain, for example, central Adapter Engine + non-central Adapter Engines, the Adapter Engine name cannot contain the host name of central instance. Rather, it needs to have a unique name for each Adapter Engine.
The value for j2ee_dbhost is taken from the Java profile parameters.
- You can check the profile parameters in the folder /usr/sap/<SID>/SYS/profile.
2. parameter “com.sap.aii.connect.integrationserver.sld.name”
The value of parameter “com.sap.aii.connect.integrationserver.sld.name” mentioned in HA note 1052984 is as follows:
<is sld name> Default: is.<cisysnr>.<cihost>
- You can configure it at http://<host>:<port>/dir -> Administration -> Exchange Profile -> Parameters -> Connections.
- You may be wondering whether this parameter will work if you switch from CI to DI.
In fact the value of this parameter is just an identifier that does not have any particular meaning for the java stack. It is just used to avoid many SLD reads.So the parameter value should contain the host name and instance number of CI. This parameter somehow outdated because when stripping the ASCS from CI, it becomes a plain DI. However, one of the DIs is denoted central and this is defined during the system install. So the CI “knows” it is the central one and this exact instance is used to define the name of the integration server.
So if you have installed PI according the HA notes, there should be no problems if the CI is offline. The DIs know which CI they belong to and use it to recreate SLD content if necessary.
- 3. How to change the SOAP address of WSDL published from Integration Directory
You create a Sender Agreement in the Integration Directory. The Sender Agreement references a communication channel of adapter type SOAP. After publishing the WSDL description for the Sender Agreement from Integration Directory to Services Registry, you find that the target address of WSDL uses the physical hostname of Application Server, not the virtual hostname of Web Dispatcher.
- Goto SLD -> CIM instances -> XI Adapter Framework -> Adapter Engine on xx -> Associations -> SOAP of af.xx.xx -> Associations -> Port for SOAP of af.xx.xx -> Properties
- Change the URL to “http://<virtual host>:<httpport>/XISOAPAdapter/MessageServlet”. Change the SecureURL as well.
- Clear the SLD cache from Integration Directory and then republish the WSDL.
Please note that this change will be overwritten after you restart the J2EE engine. This problem can be solved by forcing the XI self-registration to use the virtual host and port of Web Dispatcher.
- Navigate to ‘Configuration Management -> Infrastructure -> Java System Properties’. For Usage_Type_All_in_One, Service “XPI Service: CPA Cache” and set the following properties:
SLD.selfregistration.hostName: <virtual host>
- Restart the applications “com.sap.aii.af.cpa.app” and “com.sap aii.af.app”, or restart the complete J2EE engine. This triggers a new Adapter Engine self-registration.
SAP Note 951910 – NW2004s High Availability Usage Type PI
SAP Note 1052984 – Process Integration >=7.1 – High Availability
SAP Note 804124 – HTTP communication with XI Adapter Engine fails