2016-11-25 10 views
0

WSO2 BPS 3.6.0の使用 - 実行中のBPELプロセスにイベントについて通知するサービスがあります。WSO2 BPS BPEL相関が見つからない場合のタイムアウト

プロセスが実行されているため、(相関を使用して)うまく動作しています。しかし、プロセスがすでに完了しているときは、要求に応答がありません。例外が発生しても大丈夫ですが、何の応答も得られない場合は迷惑です。特定の相関がある(アクティブな)インスタンスがない場合、迅速に失敗する方法はありますか?

編集:効果的に選ぶとのonEvent活動が

+0

外部の相関データベーステーブルを作成する必要があり、インスタンスがまだアクティブであるかどうかを調べる必要があります。 – gusto2

答えて

0

のApache ODEを早期に到着した受信メッセージをエンキューするように設計されて

は、事前にありがとうと同じように振る舞い、受け取ります。

例:プロセス

Receive1 - > Receive2 - > Receive3 - > Reply3

Receive1:インスタンスを作成し、相関を開始します。

Receive2:インスタンスがメッセージの到着を待っています。

しかし、Receive3のメッセージはReceive2の前に到着するため、エンキューされます。次のアクティビティはReply3であるため、同期呼び出しであり、チャネルは応答を待ってタイムアウトします。

Receive2が到着すると、エンジンはReceive3のメッセージがすでに到着していることを確認し、インスタンスを完了します。

他のメッセージが同じ相関値を持つReceive3に到着した場合、同じ相関値で作成される新しいインスタンスで、今後再び消費されるように再び待ち行列に入れられます。したがって、エラーは報告されません。

注:WSO2がこの動作を変更していない限り、これはApache ODEの動作です。

+0

返信いただきありがとうございます。私はその点を見る。実際、サーバーはあなたが記述したように動作します。したがって、相関が見つからない場合でも、コールは作成されるまで待機します。コール・サービスは、BPELエンドポイントを呼び出す前に相関(ビジネス・オブジェクト)が存在するかどうかをチェックする必要があるようです。 – gusto2

+0

好奇心が強い、なぜあなたはチェックしたいですか? – Sathwik

+0

要求処理中(数日または数週間かかる場合があります)、クライアントは要求に関連する更新またはイベントを提供します(onEventによって処理されるか、相関で選択されます)。プロセスが完了したら、それ以降の更新は拒否されなければなりません。だから、タイムアウトを取得することは本当にオプションではありません。幸いにも、BPELサーバーの前にESBがあるため、要求(ビジネス・オブジェクト)の状態をチェックできます。 – gusto2

関連する問題