异步开发可调用消息流

要使用可调用流异步拆分处理,首先要创建一个包含 CallableFlowAsyncInvoke 节点的调用消息流。 然后创建一个包含 CallableInputCallableReply 节点的可调用消息流。 最后,创建一个包含 CallableFlowAsyncResponse 节点的响应消息流。

准备工作

阅读 可调用消息流简介。

关于此任务

本主题介绍如何使用 CallableFlowAsyncInvokeCallableFlowAsyncResponse 节点在异步可调用消息流之间拆分处理。 您还可以通过在环境中的 UserContext 文件夹中存储和检索数据,在包含这些节点的调用流和响应流之间共享数据。 有关共享数据的信息,请参阅 在调用流与响应流之间共享数据

过程

以下步骤描述了如何创建可相互发送信息的调用流、可调用流和响应流。

  1. IBM App Connect Enterprise 工具包 中,创建调用消息流,其中必须包括一个 CallableFlowAsyncInvoke 节点。

    CallableFlowAsyncInvoke节点会完整解析传入的消息,以便以合适的格式将其发送到 CallableInput节点。 因此,请在信息到达 CallableFlowAsyncInvoke 节点之前对其进行验证。 如果消息在该点验证失败,那么可以将其回滚。

  2. 在另一个应用程序中,创建可调用消息流,该消息流必须以 CallableInput 节点开头,并且包含 CallableReply 节点。

    CallableFlowAsyncInvoke 节点通过引用 CallableInput 节点上的端点名称和包含可调用流的应用程序来调用可调用流。 因此,必须在应用程序中包含所有可调用流。

  3. 在可调用流的 CallableInput 节点上,使用 端点名称 属性为可调用流提供名称。

    应用程序和端点名称对在单个集成服务器上必须是唯一的。 您可以有多个可调用流,它们共享同一应用程序和端点名称,但必须在不同的集成服务器中。 在这种情况下,Switch 服务器充当负载均衡器。

  4. 在调用流程的 CallableFlowAsyncInvoke 节点上,设置以下属性:
    表 1. CallableFlowAsyncInvoke 节点属性
    属性
    目标应用程序 将此属性设置为包含可调用流的应用程序名称。
    目标端点名称 输入 CallableInput 节点的 端点名称 属性的名称。 此名称区分大小写。 目标端点名称 必须与 CallableInput 节点的 端点名称 完全匹配。
    请求超时(秒) 设置时间,必须在此时间内调用可调用流(以秒计)。 如果未在指定时间内调用可调用流,将发出错误消息。
    调用首选项
    • 如果主流和可调用流位于同一集成服务器中,请将此属性设置为 Prefer local calls
    • 如果您的流量被 App Connect EnterpriseIBM App Connect Enterprise as a Service 分割,请将此属性设置为 Remote calls only
  5. 在不同的应用程序中,或在步骤 1 中用于创建调用流的同一应用程序中,创建一个以 CallableFlowAsyncResponse 节点开始的响应消息流。
  6. 设置 CallableFlowAsyncResponse 节点的 Unique identifier 属性,使其与步骤 1 中创建的 CallableFlowAsyncInvoke 节点中设置的值相匹配。
    现在,您有三个独立的消息流:调用流、可调用流和响应流:
    此图说明了主消息流中的 CallableFlowAsyncInvoke 节点调用远程流。 远程流完成一些处理,然后响应单独的响应流。
  7. 将包含调用消息流和响应消息流的应用程序打包到 BAR 文件中,并将可调用消息流打包到单独的 BAR 文件中。
  8. 将 BAR 文件部署到相应的集成服务器。

    如果要在 App Connect EnterpriseApp Connect Enterprise as a Service 之间拆分处理,请在本地部署一个 BAR 文件,并将另一个文件上传到云。 有关将 BAR 文件部署到 App Connect Enterprise as a Service 的更多信息,请参阅 App Connect Enterprise as a Service 文档中的 部署集成

结果

当您将消息传递到调用消息流时,CallableFlowAsyncInvoke 节点会将消息正文和本地环境文件夹的内容发送到可调用流的 CallableInput 节点,然后完成。 当可调用流完成处理时,CallableReply 节点会将消息正文和本地环境文件夹数据发送到独立响应流中的 CallableFlowAsyncResponse 节点。

后续操作

如果您的可调用流位于不同的集成服务器中,那么就需要创建交换服务器(用于路由数据)和连接代理以允许流安全进行通信。 有关更多信息,请参阅 为可调用流准备环境