機械翻訳について

オーケストレートされた統合でのフォルト・マッピングの定義

統合でフォルト・マッピングを定義できます。 このマッピングは、ターゲットとして使用されたデータベース・アダプタのフォルトを、WSDLで定義されたソース・フォーマットに変換します。 データベース・アダプタをオーケストレートされた統合のスコープ・アクションに追加し、スコープ・アクションの「フォルト・ハンドラ」部分でこのフォルトを選択します。

serviceInvocationErrorフォルト・マッピングがWSDLで定義されている

マッパーでは、serviceInvocationErrorの要素によってランタイム・フォルトの詳細が提供されます:
  • type: 障害のタイプ。

  • title: フォルトのタイトル。

  • detail: 障害の原因に関する情報。

  • errorCode: フォルト・コードに関する情報。

  • remedialAction: 障害を修正する方法。

このフォルト構造は、アウトバウンド起動で例外が発生した場合(主キー違反など)、実行時に移入されます。

マップ・データ統合でアダプタを使用する場合、マッパーで使用できるのは、reasondetailおよびerrorCodeのみです。

アダプタの起動(アウトバウンド)で例外(NumberFormatException)が発生したと仮定します。 例外はフォールト・マッピングにマップされ、WSDLコントラクトで定義されているソース形式に戻されます。 この使用例では、整数型のみを受け入れるストアド・プロシージャが使用されます。 非整数値を渡すことによってアダプタを起動すると、Oracle Integrationによって障害がレポートされます。

障害マッピングを定義するには:

  1. SOAPアダプタおよびデータベース・アダプタの接続を作成します。
  2. オーケストレーションされた統合の作成
  3. SOAPアダプタを統合キャンバスにトリガーとしてドラッグします。
    アダプタ・エンドポイント構成ウィザードが表示されます。
  4. SOAPアダプタを構成します(この例では、s1という名前)。
  5. 「アクション」パレットから、SOAPアダプタの下に「スコープ」アクションをドラッグします。
  6. 「起動」パレットから、スコープ内にデータベース・アダプタをドラッグします。
    db_fault_hanlder1.pngの説明は以下のとおりです
    「図db_fault_hanlder1.pngの説明」
    アダプタ・エンドポイント構成ウィザードが表示されます。
  7. 入力パラメータとして整数のみを受け入れるストアド・プロシージャを起動する操作を選択します(この例では、アダプタの名前はdb1です)。
  8. 「データベース・アダプタ」のマッピングを定義します。
    db_fault_hanlder2.pngの説明は以下のとおりです
    「図db_fault_hanlder2.pngの説明」
  9. 統合キャンバスで、「再配置」をクリックし、スコープ内のs1マップを移動します。
  10. s1のマッピングを定義します。
    db_fault_hanlder3.pngの説明は以下のとおりです
    「図db_fault_hanlder3.pngの説明」
  11. 「フォルト・ハンドラ」部分をクリックし、Oracle Database : serviceInvocationError db1を選択します。
    db_fault_hanlder4.pngの説明は以下のとおりです
    「図db_fault_hanlder4.pngの説明」
  12. 「アクション」パレットから、「フォルト・ハンドラ」の中に「フォルトの戻り」アクションをドラッグします。
  13. フォールト・マッピングを定義します。
    db_fault_hanlder5.pngの説明は以下のとおりです
    図db_fault_hanlder5.pngの説明
    障害のルート要素はserviceInvocationErrorです。 障害には、障害の詳細を含む他の要素が含まれます: type, title, detail, errorCodeおよびremedialAction detail要素には、障害原因に関する情報が格納されます。 remedialAction要素は、障害を修正するアクションを示します。
  14. 「アクション」メニューメニューから「トラッキング」を選択し、トラッキング・フィールドを定義します。
  15. SOAP UIから文字列値(非整数値)を渡して、統合をアクティブ化して起動します。
    <typ:getOrganization>
       <typ:partyId>test</typ:partyId>
    </typ:getOrganization>

    フォルト・レスポンスは、次のような情報を返します:

    <nstrgmpr:code>XSD object conversion error</nstrgmpr:code>
      <nstrgmpr:message>An error occurred while parsing XML representing a Java object.</nstrgmpr:message>
    <nstrgmpr:severity>Unable to convert the XSD element DATA_IN whose SQL type is INTEGER and JDBC type is INTEGER. Cause: java.lang.NumberFormatException: For input string: "test"</nstrgmpr:severity>
    <nstrgmpr:detail>
    <nstrgmpr:code>serviceInvocationError</nstrgmpr:code>
    <nstrgmpr:message>Check to ensure that the XML data describing the object matches the definition of the element in the XSD.</nstrgmpr:message>
    <nstrgmpr:detail>
    <nstrgmpr:code/>
    <nstrgmpr:message/>
    <nstrgmpr:severity/>
    <nstrgmpr:detail/>
    </nstrgmpr:detail>
    <nstrgmpr:detail xsi:type="nstrgmpr:ServiceErrorMessage" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
    </nstrgmpr:detail>
    </nstrgmpr:ServiceErrorMessage>
    </detail>