拥有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标头强制使用正确的回调网址。我仍然不确定这是否是正确的方法。
答案 0 :(得分:0)
Process1& Process2异步调用CommonProcess。
Process1& Process2应该实现Callback.wsdl
中定义的操作CommonProcess将调用Callback.wsdl中定义的操作来进行亲密 处理1 /过程2。
ProcessPackage1
ProcessPackage2
CommonProcessPackage
如何通过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上提供。