我从这个位置得到了这个 BPEL 的例子https://svn.wso2.org/repos/wso2/carbon/platform/trunk/products/bps/modules/samples/product/src/main/resources/bpel/2.0 /SampleCompensationHandlers/FlightReservationProcess/
该示例在执行给定范围时设置给定变量。最后一个作用域抛出一个错误,因此该错误触发了该作用域的相关处理程序,该处理程序重新抛出该错误。这样会触发流程的故障处理程序,对每个成功完成的范围进行补偿。
我在 Eclipse 中创建了一个 BPEL 项目,并将示例放在那里,然后我开始了一些测试。但我发现了一个非常奇怪的行为:
我只有几次得到正确的结果: CarReservationActivity: 1 CarReservationCompensated: 1 HotelReservationActivity: 1 HotelReservationCompensated: 1 FlightReservatoinActivity: 1
在所有其他情况下,我得到了不正确的结果:
一个)
CarReservationActivity:1 CarReservationCompensated:0 HotelReservationActivity:1 HotelReservationCompensated:1 FlightReservatoinActivity:1
二)
CarReservationActivity:1 CarReservationCompensated:1 HotelReservationActivity:1 HotelReservationCompensated:0 FlightReservatoinActivity:1
当结果不正确时,情况 A) 占主导地位。
我找不到问题出在哪里。一切看起来都很好。
有人可以帮我解决这个问题吗?
使用的软件: - Windows 7 Enterprise,SP1,32 位 - Apache Tomcat v.6.0.18 - Apache ODE v.1.3.5 - Eclipse Indigo v.3.7.2 SR2 - BPEL Designer v.1.0.1 - Java 7 (v. 1.7.0_07)