是否有可能在同步BPEL流程中将结果返回给客户端?
我将回复组件放在BPEL流程的中间,但客户端仍会等待整个过程完成。我想知道回复机制如何在BPEL中用于同步。
答案 0 :(得分:2)
是的,您可以放置回复活动并在其后执行一些其他活动。
但是你必须在回复后放置Wait活动强制BPEL引擎实际发送回复消息。
此外,必须将Wait活动配置为在Oracle Enterprise Manager Fusion Middleware Control的系统MBean浏览器中等待最少3秒或MinBPELWait属性的值。否则服务器将忽略它。
请参阅:http://docs.oracle.com/cd/E23943_01/dev.1111/e10224/bp_events.htm#SOASE516
答案 1 :(得分:0)
您可以将回复活动放在要将响应发送回客户端的任何位置。无论回复活动后的活动是否按预期执行。
您需要确保的一件事是,相应的接收活动只能有一个回复活动。
答案 2 :(得分:0)
您可以使用脱水活动,而不是等待。这个概念是,除非交易完成,否则bpel不会回复,因此您基本上需要结束使用回复活动的交易。为此,您必须提交事务,以便可以开始新事务。
注意:使用等待会减慢你的bpel过程。
答案 3 :(得分:0)
bpel.config.transaction = required
bpel.config.oneWayDeliveryPolicy=async.persist
答案 4 :(得分:0)
您最好的选择是在您的回复后添加一个脱水活动,这将迫使BPEL完成交易,然后开始新的交易。