IBM BPM, V8.0.1, All platforms > Programming IBM BPM > Service Component Architecture programming > SCA programming model fundamentals > Invocation styles > Considerations when invoking services on different servers

Configure servers to invoke services synchronously

When a service component invokes another service component synchronously, configure the invoking service component to point to the system running the target so the target service can communicate results to the invoking service component.

The task assumes that you have already installed IBM BPM on the systems for which you are configuring the communications but have not yet installed the applications involved. You are using an administrative console that can examine and change the configuration for both servers involved.

A service component invoking another service synchronously can communicate with the target only by configuring the export Java™ Naming and Directory Interface (JNDI) name on the target system to a JNDI name on the invoking system.

For the purposes of this task, the invoking service module resides on system A and the target resides on system B.

For the purposes of this task, Figure 1 contains the information to use in the configuration.

Figure 1. Invoking a service on a different system

For simplicity, only the servers involved in this communication in each cell is shown and each server resides on a different physical machine.


Procedure

  1. Install the applications on each server.

  2. Create a new namespace binding on the invoking system (System A, in the example) pointing to the export on the target system.

    On the Name Space Bindings panel, select a scope of Cell and click Apply. With the changed scope, click New in the display to create the new binding.

    In the wizard, specify the following (the values are appropriate for the example configuration):

    1. Binding type is CORBA

    2. The basic properties are:

      • Binding identifier is a unique string, in our example: sca_import_test_sca_cross_simple_custinfo_CustomerInfo
      • Name in Name space is the JNDI name of the enterprise Java bean (EJB) you are invoking on the target system, for example:
        sca/AppB/export/test/sca/cros/simple/custinfo/CustomerInfo
        This names the export interface on the target system.
      • Corbaname URL is the IP address and port number of the naming service on the target system:

        corbaname:iiop: host: port/NameServiceServerRoot# <package.qualified.interface>

        For WebSphere BPM, the port is the BOOTSTRAP_ADDRESS.

        For example:

        corbaname:iiop:9.26.237.144:2809/NameServiceServerRoot#sca/
        		AppB/export/test/sca/cros/simple/custinfo/CustomerInfo

      When finished, click Next and verify the values on the Summary page. After verifying, click Finish.

    Your system displays your new binding.
  3. Save your changes by clicking Save.

  4. If your cross cell configuration consists of servers on the same host with the same name and you encounter JNDI lookup failures with a NameNotFoundException, then you need to set a system property.

    Follow the directions in the Application access problems under the subheading Two servers with the same name running on the same host are being used to interoperate.


What to do next

Start the applications. The service component on System A can now synchronously invoke the service on System B.

Considerations when invoking services on different servers