1

この場所から 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 プロジェクトを作成し、そこにサンプルを配置してから、いくつかのテストを開始しました。しかし、私は非常に奇妙な動作を発見しました:

  1. 数回だけ正しい結果が得られました: CarReservationActivity: 1 CarReservationCompensated: 1 HotelReservationActivity: 1 HotelReservationCompensated: 1 FlightReservatoinActivity: 1

  2. 他のすべての場合、私は間違った結果を得ました:

    A)

    CarReservationActivity: 1 CarReservationCompensated: 0 HotelReservationActivity: 1 HotelReservationCompensated: 1 FlightReservatoinActivity: 1

    B)

    CarReservationActivity: 1 CarReservationCompensated: 1 HotelReservationActivity: 1 HotelReservationCompensated: 0 FlightReservatoinActivity: 1

結果が正しくない場合は、ケース A) が優先されます。

どこに問題があるのか​​ わかりません。すべてがうまく見えます。

誰かが問題を解決するのを手伝ってくれますか?

使用ソフトウェア : - Windows 7 Enterprise, SP1, 32bit - 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)

4

0 に答える 0