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

<この項の構成>
(1) ユーザ電文に誤りがある場合のエラー
(2) サービスアダプタでの電文の検証方法
(3) ユーザ電文トレースの取得による調査

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

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

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

[図データ]

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

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

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

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

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

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

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

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

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

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

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

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

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

表7-56 電文の検証機能が有効になるアダプタ

アダプタ種別プロトコル種類方向データ変換定義のパターン検証するフォーマット定義電文種類検証機能の有効
サービスアダプタWebサービス,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
Object Accessアダプタ要求データ変換なしサービス部品電文XML
標準-サービス部品でデータ変換標準電文XML
バイナリ×※1
サービス部品電文XML
応答データ変換なしサービス部品電文XML
サービス部品-標準でデータ変換標準電文XML
バイナリ×※1
サービス部品電文XML
ファイルアダプタ要求データ変換なしサービス部品電文XML
バイナリ×※1
標準-サービス部品でデータ変換標準電文XML
バイナリ×※1
サービス部品電文XML
バイナリ×※1
応答データ変換なしサービス部品電文XML
バイナリ×※1
サービス部品-標準でデータ変換標準電文XML
バイナリ×※1
サービス部品電文XML
バイナリ×※1
iWayアダプタ要求データ変換なしサービス部品電文XML×
応答データ変換なしサービス部品電文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. 2.が妥当であった場合,標準電文の形式からサービス部品電文の形式に変換します。
  5. 変換後の電文をサービス部品電文のフォーマット定義に対して検証します(バイナリ電文の機能がOFFの場合も同様です)。
  6. 4.が妥当であった場合,サービス部品を呼び出します。

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

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

ユーザ電文トレースを取得するには,HCSCサーバランタイム定義ファイルのtelegramtraceプロパティ,telegramtrace-filepathプロパティ,telegramtrace-filesizeプロパティ,およびtelegramtrace-filenumプロパティで設定します。HCSCサーバランタイム定義ファイルの詳細については,マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「HCSCサーバランタイム定義ファイル」を参照してください。

ユーザ電文トレースの詳細については,「7.4.4 ユーザ電文トレース」を参照してください。

注意
  • ユーザ電文の内容をファイルに出力するため,セキュリティ上の問題(情報漏洩の懸念など)が発生します。したがって,本番運用を含む通常の運用では取得しないでください。
  • 01-60以前の「<Cosminexusのインストールディレクトリ>¥CSC¥lib¥cscdba.ear」を使用して作成したDBアダプタでは,取得位置SVC,および取得位置CNVSTのユーザ電文トレースは取得できません。
  • 次に示すアダプタ製品では,取得位置SVCの電文トレースは出力されません。
    ・uCosminexus Service Adapter Architect for TP1 01-00
    ・uCosminexus Service Adapter for TP1 01-00
    ・uCosminexus Service Adapter Architect for Flat Files 01-00
    ・uCosminexus Service Adapter for Flat Files 01-00
    ・uCosminexus Service Adapter Architect for Object Access 01-00
    ・uCosminexus Service Adapter for Object Access 01-00
    ・uCosminexus Service Adapter Architect for Message Queue 01-00
    ・uCosminexus Service Adapter for Message Queue 01-00