WSO2 BPS BPEL 重用异步流程
WSO2 BPS BPEL reusing the async processes
有了 WSO2 BPS 3.6.0,我们有几个很长的 运行 异步进程。我想在多个其他进程中重用一个进程(例如错误处理、通用过程……)。
问题是,在那种情况下,多个进程将公开相同的回调服务:
ERROR {org.wso2.carbon.bpel.core.ode.integration.store.TenantProcessStoreImpl} - Service: {http://xxx/bps/xxx}XXCallback already used by another process. Try again with a different service name
如何监听多个进程的回调响应? (假设我可以提供相关性以便调用正确的实例)
我正在考虑为每个 parent 进程(甚至公开相同的端口)提供稍微不同的服务名称(url 片段?)并使用 ReplyTo header 来强制正确的回调 url。我仍然不确定这是不是一个正确的方法。
Process1 和 Process2 异步调用 CommonProcess。
Process1 和 Process2 应该实现 Callback.wsdl
中定义的操作
CommonProcess 将调用 Callback.wsdl 中定义的操作来亲密
Process1/Process2.
ProcessPackage1
- Process1.bpel
- Process1.wsdl
- CommonProcess.wsdl
- Callback.wsdl
ProcessPackage2
- Process2.bpel
- Process2.wsdl
- CommonProcess.wsdl
- Callback.wsdl
CommonProcessPackage
- CommonProcess.bpel
- CommonProcess.wsdl
- Callback.wsdl
如何将Process1&Process2的EPR传递给CommonProcess进行回调?
这可以通过 DynamicEndpoints 来完成。在从 Process1 或 Process2 调用到 CommonProcess 期间,进程 EPR 可以在有效负载消息中传递。
CommonProcess 将使用随传入消息传递的 EPR 覆盖对应于 Callback.wsdl 的 partnelink EPR。
这是一个演示如何使用 Partnerlink EPR 的示例。
https://github.com/apache/ode/tree/ode-1.3.x/distro/src/examples-war/DynPartner
这里记录了更多关于该选项的内容:
http://ode.apache.org/endpoint-references.html
注意:这是在 Apache ODE 中提供的,并且可能在 WSO2 上可用。
有了 WSO2 BPS 3.6.0,我们有几个很长的 运行 异步进程。我想在多个其他进程中重用一个进程(例如错误处理、通用过程……)。
问题是,在那种情况下,多个进程将公开相同的回调服务:
ERROR {org.wso2.carbon.bpel.core.ode.integration.store.TenantProcessStoreImpl} - Service: {http://xxx/bps/xxx}XXCallback already used by another process. Try again with a different service name
如何监听多个进程的回调响应? (假设我可以提供相关性以便调用正确的实例)
我正在考虑为每个 parent 进程(甚至公开相同的端口)提供稍微不同的服务名称(url 片段?)并使用 ReplyTo header 来强制正确的回调 url。我仍然不确定这是不是一个正确的方法。
Process1 和 Process2 异步调用 CommonProcess。
Process1 和 Process2 应该实现 Callback.wsdl
中定义的操作CommonProcess 将调用 Callback.wsdl 中定义的操作来亲密 Process1/Process2.
ProcessPackage1
- Process1.bpel
- Process1.wsdl
- CommonProcess.wsdl
- Callback.wsdl
ProcessPackage2
- Process2.bpel
- Process2.wsdl
- CommonProcess.wsdl
- Callback.wsdl
CommonProcessPackage
- CommonProcess.bpel
- CommonProcess.wsdl
- Callback.wsdl
如何将Process1&Process2的EPR传递给CommonProcess进行回调?
这可以通过 DynamicEndpoints 来完成。在从 Process1 或 Process2 调用到 CommonProcess 期间,进程 EPR 可以在有效负载消息中传递。 CommonProcess 将使用随传入消息传递的 EPR 覆盖对应于 Callback.wsdl 的 partnelink EPR。
这是一个演示如何使用 Partnerlink EPR 的示例。
https://github.com/apache/ode/tree/ode-1.3.x/distro/src/examples-war/DynPartner
这里记录了更多关于该选项的内容: http://ode.apache.org/endpoint-references.html
注意:这是在 Apache ODE 中提供的,并且可能在 WSO2 上可用。