在BPEL流程结束后调用另一个Web服务

时间:2014-09-08 13:38:12

标签: oracle web-services oracle11g soa bpel

我的BPEL流程中有以下结构。

-> Start process
Invoke web service ->
Do something
Invoke another web service ->
<- Send answer

此同步BPEL 2.0流程在我使用Oracle SOA Suite 11g创建的服务中实现。我想将流程改为以下内容:

-> Start process
Invoke web service ->
<- Send answer
Do something
Invoke another web service ->

我的问题是调用我的Web服务的实例及其触发此BPEL流程只需要知道首先调用的Web服务的结果,部分“执行某些操作”以及调用其他Web服务可能需要几个秒和不时导致消费者方面的时间。因此,BPEL流程必须在第一次调用后发送答案,但仍然对其他内容有所帮助。我尝试在第一次调用之后立即放置输出的回复,但是Web服务似乎仍然等待它完全完成,然后继续向消费者发送答案。可能是因为它被定义为同步Web服务。但我想我不能将它定义为异步服务,因为需要第一次调用的答案。或者我是否必须创建第二个BPEL流程,其中只包含最后两个部分,并使这个部分异步?但请记住,在“做某事”部分我也需要第一次调用的答案。

对于任何错误,我很抱歉,我不是以英语为母语的人。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我刚刚添加了另一个BPEL流程。现在我有一个同步和异步过程,都是在复合中的中介处开始的。可能不是完美的解决方案,但它对我有用。