標準受付からサービスアダプタのサービス部品を直接呼び出す場合,サービス部品側で要求するユーザ電文(XML文書)をサービスリクエスタで作成する必要があります。そのため,サービスリクエスタで作成するXMLに誤りがあると,正しくサービス部品を呼び出せません。SOAP通信でのSOAPメッセージとユーザ電文の関係を次の図に示します。
図7-73 SOAP通信でのSOAPメッセージとユーザ電文の関係
ユーザ電文に誤りがある(フォーマット定義の形式と異なる電文を実行した)場合,サービスアダプタのプロトコルの違いによって,エラーの内容が異なります。
また,電文の形式によっては,サービスアダプタでエラーとならないでサービス部品で例外になったり,サービス部品でエラーにならないで想定していない応答が返ったりすることがあります。
サービスアダプタ(Webサービス)から呼び出せるサービス部品の仕様は,マニュアル「Cosminexus サービスプラットフォーム 開発ガイド」の「2.6.1 Webサービスを利用したサービス部品の適用範囲」で示す適用範囲を満たしている必要があります。適用範囲以外のサービス部品の場合,動作の保障ができません。
サービスアダプタ(SessionBean)から呼び出せるサービス部品の仕様は,マニュアル「Cosminexus サービスプラットフォーム 開発ガイド」の「2.6.2 SessionBeanを利用したサービス部品の適用範囲」で示す適用範囲を満たしている必要があります。適用範囲以外のサービス部品の場合,動作の保障ができません。
サービスリクエスタから要求したユーザ電文に誤りがある場合,MDB(WS-R/DBキュー)のサービスアダプタではエラーになりません。開発環境で定義するときにスキーマを定義しますが,通常,このスキーマで定義した形式でないユーザ電文でも,非同期キューに送信されます。サービス部品側でユーザ電文を受け取って検証するよう作成している場合は,サービス部品側でエラーを検知します。
サービスアダプタに指定したフォーマット定義(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)-サービス部品(バイナリ)」の変換をした場合,要求電文に対して次の流れで変換と検証をします。
ユーザ電文トレースを取得することによって,設計したとおりの電文が流れているか,リクエスタ側やサービス側,ビジネスプロセスのアクティビティやデータ変換などの各ポイントを調査できます。
ユーザ電文トレースを取得するには,HCSCサーバランタイム定義ファイルのtelegramtraceプロパティ,telegramtrace-filepathプロパティ,telegramtrace-filesizeプロパティ,およびtelegramtrace-filenumプロパティで設定します。HCSCサーバランタイム定義ファイルの詳細については,マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「HCSCサーバランタイム定義ファイル」を参照してください。
ユーザ電文トレースの詳細については,「7.4.4 ユーザ電文トレース」を参照してください。