要使用可调用流异步拆分处理,首先要创建一个包含 CallableFlowAsyncInvoke 节点的调用消息流。 然后创建一个包含 CallableInput 和 CallableReply 节点的可调用消息流。 最后,创建一个包含 CallableFlowAsyncResponse 节点的响应消息流。
关于此任务
本主题介绍如何使用 CallableFlowAsyncInvoke 和 CallableFlowAsyncResponse 节点在异步可调用消息流之间拆分处理。 您还可以通过在环境中的 UserContext 文件夹中存储和检索数据,在包含这些节点的调用流和响应流之间共享数据。 有关共享数据的信息,请参阅 在调用流与响应流之间共享数据。
过程
以下步骤描述了如何创建可相互发送信息的调用流、可调用流和响应流。
- 在 IBM App Connect Enterprise 工具包 中,创建调用消息流,其中必须包括一个 CallableFlowAsyncInvoke 节点。
CallableFlowAsyncInvoke节点会完整解析传入的消息,以便以合适的格式将其发送到 CallableInput节点。 因此,请在信息到达 CallableFlowAsyncInvoke 节点之前对其进行验证。 如果消息在该点验证失败,那么可以将其回滚。
- 在另一个应用程序中,创建可调用消息流,该消息流必须以 CallableInput 节点开头,并且包含 CallableReply 节点。
CallableFlowAsyncInvoke 节点通过引用 CallableInput 节点上的端点名称和包含可调用流的应用程序来调用可调用流。 因此,必须在应用程序中包含所有可调用流。
- 在可调用流的 CallableInput 节点上,使用 端点名称 属性为可调用流提供名称。
应用程序和端点名称对在单个集成服务器上必须是唯一的。 您可以有多个可调用流,它们共享同一应用程序和端点名称,但必须在不同的集成服务器中。 在这种情况下,Switch 服务器充当负载均衡器。
- 在调用流程的 CallableFlowAsyncInvoke 节点上,设置以下属性:
表 1. CallableFlowAsyncInvoke 节点属性
| 属性 |
值 |
| 目标应用程序 |
将此属性设置为包含可调用流的应用程序名称。 |
| 目标端点名称 |
输入 CallableInput 节点的 端点名称 属性的名称。 此名称区分大小写。 目标端点名称 必须与 CallableInput 节点的 端点名称 完全匹配。 |
| 请求超时(秒) |
设置时间,必须在此时间内调用可调用流(以秒计)。 如果未在指定时间内调用可调用流,将发出错误消息。 |
| 调用首选项 |
- 如果主流和可调用流位于同一集成服务器中,请将此属性设置为 Prefer local calls。
- 如果您的流量被 App Connect Enterprise 和 IBM App Connect Enterprise as a Service 分割,请将此属性设置为 Remote calls
only。
|
- 在不同的应用程序中,或在步骤 1 中用于创建调用流的同一应用程序中,创建一个以 CallableFlowAsyncResponse 节点开始的响应消息流。
- 设置 CallableFlowAsyncResponse 节点的 Unique identifier 属性,使其与步骤 1 中创建的 CallableFlowAsyncInvoke 节点中设置的值相匹配。
现在,您有三个独立的消息流:调用流、可调用流和响应流:
- 将包含调用消息流和响应消息流的应用程序打包到 BAR 文件中,并将可调用消息流打包到单独的 BAR 文件中。
- 将 BAR 文件部署到相应的集成服务器。
如果要在 App Connect Enterprise 和 App Connect Enterprise as a Service 之间拆分处理,请在本地部署一个 BAR 文件,并将另一个文件上传到云。 有关将 BAR 文件部署到 App Connect Enterprise as a Service 的更多信息,请参阅 App Connect Enterprise as a Service 文档中的 部署集成。
结果
当您将消息传递到调用消息流时,CallableFlowAsyncInvoke 节点会将消息正文和本地环境文件夹的内容发送到可调用流的 CallableInput 节点,然后完成。 当可调用流完成处理时,CallableReply 节点会将消息正文和本地环境文件夹数据发送到独立响应流中的 CallableFlowAsyncResponse 节点。
后续操作
如果您的可调用流位于不同的集成服务器中,那么就需要创建交换服务器(用于路由数据)和连接代理以允许流安全进行通信。 有关更多信息,请参阅 为可调用流准备环境。