BPEL 2.0でのフォルト処理の優先順位

BPEL 2.0の場合、関連するデータなしでスローされたフォルトを捕捉するための優先順位は次のとおりです。

  • 一致するfaultName値を持つcatchアクティビティがあり、そのfaultName値でfaultVariable属性が指定されていない場合、フォルトは識別されたcatchアクティビティに送信されます。

  • catchAllアクティビティがある場合、フォルトはcatchAllフォルト・ハンドラに送信されます。

  • それ以外の場合、フォルトはデフォルトのフォルト・ハンドラによって処理されます。

BPEL 2.0の場合、関連するデータとともにスローされたフォルトを捕捉するための優先順位は次のとおりです。

  • 一致するfaultName値を持つcatchアクティビティがあり、そのfaultName値でfaultVariable属性が指定されていない場合、フォルトは識別されたcatchアクティビティに送信されます。

  • フォルト・データが、次のものを含むWSDLメッセージ・タイプの場合:

    • メッセージには、要素で定義された単一パーツが含まれます。

    • 一致するfaultName値を持つcatchアクティビティであり、その値にはfaultVariableがあり、これに関連付けられているfaultElement QNameは、単一のWSDLメッセージ・パーツの実行時要素データのQNameと一致します。

    その後フォルトは、単一パーツの要素の値に初期化されたfaultVariableを持つ、識別されたcatchアクティビティに送信されます。

  • 一致するfaultName値を持つcatchアクティビティがあり、そのfaultName値でfaultVariable属性が指定されていない場合、フォルトは識別されたcatchアクティビティに送信されます。この場合、フォルト値はフォルト・ハンドラ内からは使用できませんが、rethrowアクティビティで使用できます。

  • faultName属性がないcatchコンストラクトがあり、そのfaultName属性に、タイプが実行時フォルト・データのタイプと一致するfaultVariableがある場合、フォルトは識別されたcatchアクティビティに送信されます。

  • フォルト・データが、メッセージに要素で定義された単一パーツが含まれるWSDLメッセージ・タイプで、faultVariableを持つfaultName属性がないcatchアクティビティが存在し、そのfaultVariableの関連するfaultElementのQNameが単一のWSDLメッセージ・パーツの実行時要素データのQNameと一致する場合、フォルトは、単一パーツの要素の値に初期化されたfaultVariableを持つ、識別されたcatchアクティビティに送信されます。

  • catchAllアクティビティがある場合、フォルトはcatchAllフォルト・ハンドラに送信されます。

  • それ以外の場合、フォルトはデフォルトのフォルト・ハンドラによって処理されます。