A message flow that you create in IBM® App Connect Enterprise or IBM Integration Bus can complete many different actions. If any of those actions are labor-intensive, you can split them from the main flow and complete them somewhere else. You can also configure event-driven flows in App Connect on IBM Cloud as callable flows, enabling those flows (and their use of smart connectors for SaaS apps) to be called by App Connect Enterprise and IBM Integration Bus flows.

For example, some parts of a message flow might logically belong in a specific location: if your flow queries an on-premises database, performance is better if that part of the flow remains on premises. But if part of your flow queries a website multiple times, performance might be improved by running that part of the flow in the cloud. You can call the cloud-based flow from your on-premises flow, and the flow in the cloud doesn’t use any of your on-premises resources.

These callable flows also facilitate reuse because they can be called by multiple message flows. You can deploy both flows to App Connect Enterprise or Integration Bus, or you can run them in an integration server in App Connect on IBM Cloud™. You can also run one flow in App Connect on IBM Cloud, and the other flow in App Connect Enterprise or Integration Bus (for example, on premises or in a private cloud).

If you’re sharing flow processing between App Connect on IBM Cloud and either App Connect Enterprise or Integration Bus, you have to configure secure connectivity between them. Your flows can then communicate by using a Switch server and connectivity agents. The Switch server is already created in IBM App Connect on IBM Cloud. The connectivity agents contain the certificates that your flows require to communicate securely with the Switch server.

You must download an agent configuration file (agentx.json) from the cloud, and use it to configure the connectivity agent. Your flows use this agent, and the Switch server, to communicate securely between between App Connect on IBM Cloud and App Connect Enterprise or Integration Bus.

Note: If your callable flows are both deployed to App Connect Enterprise or Integration Bus, or both running in App Connect on IBM Cloud, they can communicate with each other as soon as you deploy them.

The following instructions describe how to create a secure connection between flows in App Connect on IBM Cloud and flows in App Connect Enterprise or Integration Bus. You can split your flows into multiple callable flows, but for simplicity, this tutorial assumes that you’re creating just two flows: a calling flow and a callable flow.

First, find or create everything you need

  • These instructions assume that you have IBM App Connect Enterprise or IBM Integration Bus installed on premises, and have configured an integration server on premises. For example, see Creating an integration server in the App Connect Enterprise documentation.

Configure connectivity between your flows on premises and in App Connect on IBM Cloud

  1. In App Connect on IBM Cloud, open the hamburger menu App Connect menu icon, expand Manage, then click Callable flows.

    If you’ve not configured callable flows before, the list will be empty, and the status of connectivity is “Connectivity paused”.

  2. Click Connect callable flows.

    A dialog box opens to set up your agent.

  3. Click Download the configuration.
  4. For App Connect Enterprise, save the agent configuration file (agentx.json) to the work directory of the integration server in App Connect Enterprise:
    IntegrationServerWorkDirectory\config\iibswitch\agentx.

    (If you don’t see this directory, you’ll need to create the work directory for your integration server by running the mqsicreateworkdir command in App Connect Enterprise. For more information, see Configuring an integration server in the App Connect Enterprise Knowledge Center.)

  5. For Integration Bus, save the agent configuration file (agentx.json) to the same computer where Integration Bus is running. Start an IBM Integration Bus command environment, then run the following mqsichangeproperties command for the integration server that contains your callable flow.

    On Windows:
    mqsichangeproperties integrationNodeName -e integrationServerName -o ComIbmIIBSwitchManager -n agentXConfigFile -p filepath\agentx.json

    On Linux:
    mqsichangeproperties integrationNodeName -e integrationServerName -o ComIbmIIBSwitchMan

  6. In App Connect on IBM Cloud, click Test your agent to ensure that your flows that are split between the cloud and on premises can communicate with each other. If the test is successful, close the dialog box.
  7. Click Restart.

    The status should change to “Started”.

You’ve configured secure communication between your split flows on premises and in the cloud.

What next

When you start flows that are configured as callable flows, or contain nodes that invoke callable flows, details of those flows are shown on the Callable flows page. For example:

(Click image to view full size)

For some examples of sharing flow processing between App Connect on IBM Cloud and App Connect Enterprise, see the following tutorials:

  • Share data and processing from App Connect on IBM Cloud to ACE Learn how to create a callable flow in IBM App Connect Enterprise (ACE) that updates on-premises data and augments data for SaaS applications when called from a simple event-driven flow in IBM App Connect on IBM Cloud.
  • Share data and processing from ACE to App Connect on IBM Cloud Learn how to create a flow in IBM App Connect Enterprise (ACE) that updates on-premises enterprise data and calls an event-driven flow in IBM App Connect on IBM Cloud to pass enterprise data to SaaS applications and to get data from SaaS applications for processing on-premises.

If you can’t find what you want, or have comments about this tutorial, please either add comments to the bottom of this page or .

3 comments on"Sharing flow processing between App Connect on IBM Cloud and App Connect Enterprise or Integration Bus"

  1. Not able to perform connection through agentx. I have downloaded the agetx.json file from IBM AppConnect and copied in config\iibswitch\agentx folder of my workdirectory. Whenever I am trying to start the Integration server I am getting the below error. Need help in figuring out the issue and how to resolve it.

    …..2019-09-11 06:58:14.874924: .2019-09-11 12:28:14.897497: Integration server ‘ACEINTNODE’ starting initialization; version ‘11.0.0.5’ (64-bit)
    …………………………………..component starting: “agentx”
    ..Starting agentx with config folder: ‘C:\AppConnect_V11\workspace\Appconect_Callable_Workdirectotry\config\iibswitch\agentx’
    2019-09-11 12:28:21.129248: IBM App Connect Enterprise administration security is inactive.
    2019-09-11 12:28:21.182828: The HTTP Listener has started listening on port ‘7600’ for ‘RestAdmin http’ connections.

    2019-09-11 12:28:21.208368: Integration server has finished initialization.
    2019-09-11 12:28:23.802008: The connection agent for remote callable flows has encountered a network error when communicating with the Switch server with URL ‘wss://ibm-sw-ontqpeksebglffniz.eu-gb.ace.ibm.com:443/’. The error message is: ‘Error: unable to verify the first certificate’.
    AgentX: scheduling restart 0: 5000
    AgentX: restarting client connection 0
    AgentX: scheduling restart 0: 5000
    AgentX: restarting client connection 0

    • Hi Ishita,
      There have been times when network issues interfere, and for which the easiest thing was to stop the agent and download a new config.

      Please stop your agent and then try to create a new agent (use “Connect callable flows” button to download a new agentx.json and then test the your agent). I just did this, and it worked OK for me.

      If creating a new agent works for you, please let me know.

      Otherwise, open a support ticket with your problem details, by using the links and info under “Access IBM Support” on the Support page.

      That will help the squad to investigate the problem properly, and if something is found to arrange a fix and/or doc update.

      Regards,
      Ian

      • Thanks for the suggestion. It worked.
        Also initially I was using a WIFI network. When I connected to a different network it worked.

Join The Discussion

Your email address will not be published. Required fields are marked *