Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム システム構築・運用ガイド


7.7.21 ユーザ電文に誤りがある場合の障害対策

〈この項の構成〉

(1) ユーザ電文に誤りがある場合のエラー

標準受付からサービスアダプタのサービス部品を直接呼び出す場合,サービス部品側で要求するユーザ電文(XML文書)をサービスリクエスタで作成する必要があります。そのため,サービスリクエスタで作成するXMLに誤りがあると,正しくサービス部品を呼び出せません。SOAP通信でのSOAPメッセージとユーザ電文の関係を次の図に示します。

図7‒168 SOAP通信でのSOAPメッセージとユーザ電文の関係

[図データ]

ユーザ電文に誤りがある(フォーマット定義の形式と異なる電文を実行した)場合,サービスアダプタのプロトコルの違いによって,エラーの内容が異なります。

また,電文の形式によっては,サービスアダプタでエラーとならないでサービス部品で例外になったり,サービス部品でエラーにならないで想定していない応答が返ったりすることがあります。

(a) Webサービス(SOAP通信)実行時にユーザ電文不正でエラーになる場合

SOAPアダプタから呼び出せるサービス部品の仕様は,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「2.6.1 Webサービスを利用したサービス部品の適用範囲」で示す適用範囲を満たしている必要があります。適用範囲以外のサービス部品の場合,動作の保障ができません。

(b) SessionBean実行時にユーザ電文不正でエラーになる場合

SessionBeanアダプタから呼び出せるサービス部品の仕様は,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「2.6.2 SessionBeanを利用したサービス部品の適用範囲」で示す適用範囲を満たしている必要があります。適用範囲以外のサービス部品の場合,動作の保障ができません。

(c) MDB(WS-R/DBキュー)実行時にユーザ電文不正でエラーになる場合

サービスリクエスタから要求したユーザ電文に誤りがある場合,MDB(WS-R/DBキュー)のサービスアダプタではエラーになりません。開発環境で定義するときにスキーマを定義しますが,通常,このスキーマで定義した形式でないユーザ電文でも,非同期キューに送信されます。サービス部品側でユーザ電文を受け取って検証するよう作成している場合は,サービス部品側でエラーを検知します。

(2) サービスアダプタでの電文の検証方法

サービスアダプタに指定したフォーマット定義(XMLスキーマ)とユーザ電文(XML文書)が,XMLスキーマの仕様に従い,妥当かどうか検証できます。

サービスアダプタでの電文の検証機能を使用するには,HCSCサーバランタイム定義ファイルのtelegram-validationプロパティで設定します。HCSCサーバランタイム定義ファイルの詳細については,マニュアル「サービスプラットフォーム リファレンス」の「6.5.6 HCSCサーバランタイム定義ファイル」を参照してください。

注意事項

定義したフォーマット定義に対して妥当でない電文であるにもかかわらず,サービス部品呼び出しに成功していた電文の場合,電文の検証機能を使用することで,この機能によって妥当な形式でないと判断されると,サービスアダプタでエラーとなります。

電文の検証機能は,HCSCサーバ全体の次の表に示すサービスアダプタで有効となります。サービスアダプタごとには設定できません。また,サービス部品を呼び出す要求電文,または応答電文に対して有効となります。

表7‒235 電文の検証機能が有効になるサービスアダプタ

アダプタ種別

方向

データ変換定義のパターン

検証するフォーマット定義

電文種類

検証機能の有効

SOAPアダプタ,

SessionBeanアダプタ,

MDB(WS-R)アダプタ,

MDB(DBキュー)アダプタ

要求

データ変換なし

サービス部品電文

XML

バイナリ

×※1

標準−サービス部品でデータ変換

標準電文

XML

バイナリ

×※1

サービス部品電文

XML

バイナリ

×※1

応答

データ変換なし

サービス部品電文

XML

バイナリ

×※1

サービス部品−標準でデータ変換

標準電文

XML

バイナリ

×※1

サービス部品電文

XML

バイナリ

×※1

フォルト

データ変換なし

×

XML

×

DBアダプタ

要求

データ変換なし

サービス部品電文

XML

×※2

標準−サービス部品でデータ変換

標準電文

XML

×

バイナリ

×

サービス部品電文

XML

×※2

応答

データ変換なし

サービス部品電文

XML

×※2

サービス部品−標準でデータ変換

標準電文

XML

×

バイナリ

×

サービス部品電文

XML

×※2

TP1アダプタ

要求

データ変換なし

サービス部品電文

バイナリ

×※1

標準−サービス部品でデータ変換

標準電文

XML

バイナリ

×※1

サービス部品電文

バイナリ

×※1

応答

データ変換なし

サービス部品電文

バイナリ

×※1

サービス部品−標準でデータ変換

標準電文

XML

バイナリ

×※1

サービス部品電文

バイナリ

×※1

ファイルアダプタ

要求

データ変換なし

サービス部品電文

XML

バイナリ

×※1

標準−サービス部品でデータ変換

標準電文

XML

バイナリ

×※1

サービス部品電文

XML

バイナリ

×※1

応答

データ変換なし

サービス部品電文

XML

バイナリ

×※1

サービス部品−標準でデータ変換

標準電文

XML

バイナリ

×※1

サービス部品電文

XML

バイナリ

×※1

Object Accessアダプタ

要求

データ変換なし

サービス部品電文

XML

標準−サービス部品でデータ変換

標準電文

XML

バイナリ

×※1

サービス部品電文

XML

応答

データ変換なし

サービス部品電文

XML

サービス部品−標準でデータ変換

標準電文

XML

バイナリ

×※1

サービス部品電文

XML

(凡例)

○:検証機能が有効になります。

×:検証機能が無効になります。

要求:サービスアダプタからサービス部品へ向かうことを示します。

応答:サービス部品からサービスアダプタへ向かうことを示します。

フォルト:エラー時にサービス部品からサービスアダプタへ向かうことを示します。

注※1

バイナリ電文のサービス部品呼び出し時は,設定したフォーマット定義を基にDOMに変換(パース処理)しています。そのため,バイナリ電文でフォーマット定義に対して妥当でない電文を送付した場合,例外が発生し,次のメッセージが表示されます。

KDEC05504-E An attempt to specify format definition settings has failed. (information1 = 保守情報, information2 = 保守情報)

フォーマット定義の設定に失敗しました。

注※2

DBアダプタは,telegram-validationプロパティ以外の機能で,電文形式を検証します。例えば,サービスアダプタで,要求時に,「リクエスタ(バイナリ)−標準(XML)−サービス部品(バイナリ)」の変換をした場合,要求電文に対して次の流れで変換と検証をします。

  1. 要求電文をリクエスタのフォーマット定義に対して検証します(バイナリ電文の機能がOFFの場合も同様です)。

  2. 手順1.で検証した結果が妥当であった場合,リクエスタの電文の形式から標準電文の形式に変換します。

  3. 変換後の電文を標準電文のフォーマット定義に対して検証します。

  4. 手順3.で検証した結果が妥当であった場合,標準電文の形式からサービス部品電文の形式に変換します。

  5. 変換後の電文をサービス部品電文のフォーマット定義に対して検証します(バイナリ電文の機能がOFFの場合も同様です)。

  6. 手順5.で検証した結果が妥当であった場合,サービス部品を呼び出します。

(3) ユーザ電文トレースの取得による調査

ユーザ電文トレースを取得することによって,設計したとおりの電文が流れているか,リクエスタ側やサービス側,ビジネスプロセスのアクティビティやデータ変換などの各ポイントを調査できます。

ユーザ電文トレースを取得するには,HCSCサーバランタイム定義ファイルの次のプロパティで設定します。

また,次のプロパティを設定し,正常処理時にユーザ電文トレースを出力するHCSCコンポーネントを指定して出力することで,リクエスタまたはサービスに送受信する電文を確認できます。

HCSCサーバランタイム定義ファイルの詳細については,マニュアル「サービスプラットフォーム リファレンス」の「6.5.6 HCSCサーバランタイム定義ファイル」を参照してください。

ユーザ電文トレースの詳細については,「7.4.4 ユーザ電文トレース」または「7.4.6 デバッグ情報」を参照してください。

注意事項
  • ユーザ電文の内容をファイルに出力するため,セキュリティ上の問題(情報漏洩の懸念など)が発生します。したがって,出力したユーザ電文トレースファイルの取り扱いに注意してください。

  • 01-60以前の「<サービスプラットフォームのインストールディレクトリ>\CSC\lib\cscdba.ear」を使用して作成したDBアダプタでは,取得位置SVC,および取得位置CNVSTのユーザ電文トレースは取得できません。