Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 解説
非同期(MDB(DBキュー))の標準受付は,非同期の要求電文の標準受付(MDB(DBキュー))で,基本的にサービス部品からの応答がない場合に使用します。しかし,非同期(MDB(DBキュー))の標準受付から同期のサービス部品(WebサービスまたはSessionBeanなど)やビジネスプロセスを要求した場合,同期のサービス部品から応答が返るときがあります。
そのため,HCSCサーバでは応答を応答用のキューに送信する手段を提供しています。
応答用のキューを利用するには,HCSCサーバの環境構築時にHCSCサーバ側に送信用共用キューを作成し,送信用共用キューに送信先のキュー名を指定しておきます。
サービスリクエスタから標準受付(MDB(DBキュー))に対してサービス部品の呼び出しを要求する場合,標準受付(MDB(DBキュー))のパラメタに作成した送信用共用キューのキュー名を指定すると,サービス部品からの応答が返ってきた際に指定されたキューにJMSメッセージが送信されます。
送信用共用キューからサービスリクエスタ側のDBキュー(受信用共用キュー)にメッセージが転送されるため,DBキュー(受信用共用キュー)からメッセージを取り出すことで,サービス部品からの応答電文を取得できます。
応答を取り出す方法については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「8.6.10 応答を取り出す(TP1/EE,JMS)」を参照してください。
同期サービス部品を呼び出した場合の応答の扱いを次の図に示します。
図2-45 同期サービス部品を呼び出した場合の応答の扱い
応答用のキューへメッセージを出力するのは,次に示す場合です。
同期サービス部品でも応答があるかどうかによって,次のような形式で応答用のキューへメッセージを送信します。
なお,サービスリクエスタから応答用のキューのキュー名を指定していても,HCSCサーバ側に指定したキュー名のキューが作成されていない場合は,応答用のキューにメッセージは送信できないで,サービス部品呼び出し処理がエラーになります。
表2-7 応答用のキューへメッセージを出力するケース
項番 | 応答用のキューへ出力するケース | 応答電文の有無 | |||
---|---|---|---|---|---|
応答電文がある場合 | 応答電文がない場合 | サービス部品からのユーザ定義例外の場合 | ユーザ定義例外以外のエラーの場合 | ||
1 | 呼び出し先のサービス部品が同期サービス部品の場合(WebService,SessionBeanおよび汎用カスタムアダプタなど) | ペイロードに応答電文を設定 | ペイロードなしのメッセージ | ペイロードに応答電文を設定 | ×※ |
2 | 呼び出し先のサービス部品が非同期サービス部品の場合 (MDB(WS-R)およびMDB(DBキュー)など) |
× | × | − | ×※ |
3 | 呼び出し先のサービス部品がビジネスプロセスの場合 | ペイロードに応答電文を設定 | ペイロードなしのメッセージ | ペイロードに応答電文を設定 | ×※ |
サービスリクエスタからの要求で応答用のキューのキュー名を指定していない場合は,応答電文の内容は破棄されます(応答電文を破棄したことを示すKDEC00031-Wメッセージが出力されます)。
なお,MDB(WS-R)の場合のように,JMSプロパティを引き継ぐことはできません。サービス部品呼び出しの相関関係を対応づける場合は,ユーザ電文内に相関関係を示す情報を埋め込みます。
All Rights Reserved. Copyright (C) 2012, 2019, Hitachi, Ltd.