WSO2 BPS BPEL重用异步进程

时间:2016-11-29 22:01:31

标签: wso2 bpel apache-ode wso2bps

拥有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

如何收听多个进程的回调响应? (假设我可以提供相关性,因此调用了正确的实例)

我正在考虑为每个父进程提供一些不同的服务名称(url片段?)(甚至暴露相同的端口)并使用ReplyTo标头强制使用正确的回调网址。我仍然不确定这是否是正确的方法。

1 个答案:

答案 0 :(得分:0)

Process1& Process2异步调用CommonProcess。

Process1& Process2应该实现Callback.wsdl

中定义的操作

CommonProcess将调用Callback.wsdl中定义的操作来进行亲密 处理1 /过程2。

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&的EPR Process2到CommonProcess的回调?

这可以使用DynamicEndpoints完成。在从Process1或Process2到CommonProcess的调用期间,可以在有效负载消息中传递进程EPR。 CommonProcess将覆盖与Callback.wsdl对应的partnelink EPR,其中包含与传入消息一起传递的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上提供。