Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 受付・アダプタ定義編
Message Queueアダプタの定義方法について説明します。
Message Queueアダプタでは,要求電文と応答電文の2種類の電文があります。それぞれの内容について説明します。
電文フォーマット作成手順の詳細は,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「4. 電文フォーマットの作成」を参照してください。
Message Queueアダプタの要求電文・応答電文には,XML形式またはバイナリ形式メッセージが指定できます。
XML形式のメッセージを送信する場合はXML形式電文,バイナリメッセージを送信する場合はバイナリ形式電文だけを指定できます。また,XML形式メッセージを受信する場合はXML形式電文,バイナリメッセージを受信する場合はバイナリ形式電文だけを指定できます。
Message Queueアダプタの呼び出し元から,送信キューへのメッセージ送信および受信キューからのメッセージ受信の実行を要求するための電文を要求電文といいます。
要求電文として送信する情報を説明します。
表3-37 キュー操作情報
| 情報 | 説明 |
|---|---|
| 送信キュー特定情報,受信キュー特定情報 | アクセスする送信キューまたは受信キューを指定します。アプリケーション統合属性ファイルの<resource-env-ref>タグ内にある<resource-env-ref-name>タグで指定したresource-env-refの名称を指定します。 |
| メッセージ相関識別子 | メッセージ受信要求またはブラウズ・メッセージ受信要求時,メッセージ相関識別子と一致するメッセージを受信する場合に指定します。指定値は24バイト以内でメッセージ送信応答時に設定されるメッセージ相関識別子を指定します。メッセージ相関識別子のフォーマットについては,マニュアル「サービスプラットフォーム 解説」の「2.10.2 Message Queueアダプタを使ったメッセージキューへのアクセス」のメッセージ相関識別子の生成方法に関する説明を参照してください。 |
要求電文の内容は,送信キュー特定情報および受信キュー特定情報の有無やメッセージ相関識別子の指定有無および送信メッセージ形式(バイナリ形式またはXML形式)のうち,必要な情報だけを電文に記述します。
●メッセージ送信要求の場合
XML形式で送信キュー特定情報を指定する場合の要求電文形式を次に示します。
表3-38 XML形式の送信要求電文形式(送信先キュー特定情報指定あり)
| 情報 | 電文内のタグ名 | 指定値 | 必須 |
|---|---|---|---|
| ルート要素 | SendRequest | − | ○ |
| ヘッダ情報 | mqheader | − | ○ |
| 送信キュー特定情報 | sndresname | 送信キュー特定情報※ | ○ |
| 送信メッセージ | userdata | ユーザ任意 | ○ |
XML形式で送信キュー特定情報を指定しない場合の要求電文形式を次に示します。
表3-39 XML形式の送信要求電文形式(送信先キュー特定情報指定なし)
| 情報 | 電文内のタグ名 | 指定値 | 必須 |
|---|---|---|---|
| ルート要素 | SendRequest | − | ○ |
| ヘッダ情報 | mqheader | − | ○ |
| 送信メッセージ | userdata | ユーザ任意 | ○ |
バイナリ形式で送信キュー特定情報を指定する場合について説明します。
バイナリメッセージを送信する場合は,要求電文がバイナリ形式になります。バイナリ形式の要求電文の構造を次に示します。
図3-17 バイナリ形式の送信要求電文の構造
電文の全体長は次の関係式が成り立つ必要があります。
LL ≧ 10 + Ln
バイナリメッセージを送信する場合に,要求電文に必要な情報を次に示します。
表3-40 バイナリ形式の送信要求電文形式(送信先キュー特定情報指定あり)
| 情報 | 電文内のタグ名 | 指定値 | 必須 |
|---|---|---|---|
| 送信キュー特定情報長 | 送信キュー特定情報のバイト長を10進数文字列で指定 | 10バイト | ○ |
| 送信キュー特定情報 | 送信キュー特定情報(文字列) | 任意 | ○ |
| 送信メッセージ | ユーザ任意 | 任意 | ○ |
バイナリ形式で送信キュー特定情報を指定しない場合の要求電文形式を次に示します。
表3-41 バイナリ形式の送信要求電文形式(送信先キュー特定情報指定なし)
| 情報 | 電文内のタグ名 | 指定値 | 必須 |
|---|---|---|---|
| 送信メッセージ | ユーザ任意 | 任意 | ○ |
●メッセージ受信要求の場合
バイナリ形式のメッセージ受信要求は指定できません。
XML形式のメッセージ受信要求電文形式を次に示します。
表3-42 XML形式のメッセージ受信要求電文形式
| 情報 | 電文内のタグ名 | 指定値 | 必須 |
|---|---|---|---|
| ルート要素 | RecvRequest | − | ○ |
| ヘッダ情報 | mqheader | − | ○ |
| 受信キュー特定情報 | rcvresname | 受信キュー特定情報※1 | × |
| メッセージ相関識別子 | correlationid | 受信メッセージの相関識別子※2 | × |
●ブラウズ・メッセージ受信要求の場合
バイナリ形式のブラウズ・メッセージ受信要求は指定できません。
XML形式のブラウズ・メッセージ受信要求電文形式を次に示します。
表3-43 XML形式のブラウズ・メッセージ受信要求電文形式
| 情報 | 電文内のタグ名 | 指定値 | 必須 |
|---|---|---|---|
| ルート要素 | BrowseRequest | − | ○ |
| ヘッダ情報 | mqheader | − | ○ |
| 受信キュー特定情報 | rcvresname | 受信キュー特定情報※1 | × |
| メッセージ相関識別子 | correlationid | 受信メッセージの相関識別子※2 | × |
XML形式の送信キュー特定情報および受信キュー特定情報を指定する場合の要求電文形式を次に示します。
表3-44 XML形式のメッセージ送受信要求電文形式(送受信キュー特定情報指定あり)
| 情報 | 電文内のタグ名 | 指定値 | 必須 |
|---|---|---|---|
| ルート要素 | SndRcvRequest | − | ○ |
| ヘッダ情報 | mqheader | − | ○ |
| 送信キュー特定情報 | sndresname | 送信キュー特定情報※ | ○ |
| 受信キュー特定情報 | rcvresname | 受信キュー特定情報※ | ○ |
| 送信メッセージ | userdata | 任意 | ○ |
XML形式の送信キュー特定情報および受信キュー特定情報を指定しない場合の要求電文形式を次に示します。
表3-45 XML形式のメッセージ送受信要求電文形式(送受信キュー特定情報指定なし)
| 情報 | 電文内のタグ名 | 指定値 | 必須 |
|---|---|---|---|
| ルート要素 | SndRcvRequest | − | ○ |
| ヘッダ情報 | mqheader | − | ○ |
| 送信メッセージ | userdata | 任意 | ○ |
バイナリ形式の送信キュー/受信キュー特定情報を指定する場合について説明します。
バイナリメッセージを送受信する場合は,要求電文がバイナリ形式になります。バイナリ形式の要求電文の構造を次に示します。
図3-18 バイナリ形式の送受信要求電文の構造
電文の全体長は次のような関係式が成り立つ必要があります。
LL ≧ 10 + Ln + 10 + Lo
バイナリメッセージを送受信する場合に,要求電文に必要な情報を次に示します。
表3-46 バイナリ形式の送信要求電文形式(送信先キュー/受信キュー特定情報指定あり)
| 情報 | 電文内のタグ名 | 指定値 | 必須 |
|---|---|---|---|
| 送信キュー特定情報長 | 送信キュー特定情報のバイト長を10進数文字列で指定 | 10バイト | ○ |
| 送信キュー特定情報 | 送信キュー特定情報(文字列) | 任意 | ○ |
| 受信キュー特定情報長 | 受信キュー特定情報のバイト長を10進数文字列で指定 | 10バイト | ○ |
| 受信キュー特定情報 | 受信キュー特定情報(文字列) | 任意 | ○ |
| 送信メッセージ | ユーザ任意 | 任意 | ○ |
バイナリ形式の送信キュー/受信キュー特定情報を指定しない場合の要求電文形式を次に示します。
表3-47 バイナリ形式の送信要求電文形式(送信先キュー/受信キュー特定情報指定なし)
| 情報 | 電文内のタグ名 | 指定値 | 必須 |
|---|---|---|---|
| 送信メッセージ | ユーザ任意 | 任意 | ○ |
Message Queueアダプタの呼び出し元へ返却する電文を応答電文といいます。応答電文として返される情報を説明します。
応答電文の内容は,受信メッセージ形式(バイナリ形式またはXML形式)によって異なります。
なお,バイナリ形式のメッセージ送信応答は指定できません。
XML形式の送信応答電文形式を次に示します。
●メッセージ送信要求の応答電文の場合
XML形式の送信応答電文形式を次に示します。
表3-48 XML形式の送信応答電文形式
| 情報 | 電文内のタグ名 | 返却値 |
|---|---|---|
| ルート要素 | SendResponse | − |
| メッセージ送信結果 | status | OK |
| メッセージ相関識別子 | correlationid | メッセージ相関識別子※ |
●メッセージ受信要求の応答電文の場合
XML形式のメッセージ受信応答電文形式を次に示します。
表3-49 XML形式のメッセージ受信応答電文形式
| 情報 | 電文内のタグ名 | 返却値 |
|---|---|---|
| 受信メッセージ | ユーザ任意 | ユーザ任意 |
バイナリ形式のメッセージ受信応答電文形式を次に示します。
表3-50 バイナリ形式のメッセージ受信応答電文形式
| 情報 | 電文内のタグ名 |
|---|---|
| 受信メッセージ | ユーザ任意 |
●ブラウズ・メッセージ受信要求の応答電文の場合
XML形式のブラウズ・メッセージ受信応答電文形式を次に示します。
表3-51 XML形式のブラウズ・メッセージ受信応答電文形式
| 情報 | 電文内のタグ名 | 返却値 |
|---|---|---|
| 受信メッセージ | ユーザ任意 | ユーザ任意 |
バイナリ形式のブラウズ・メッセージ受信応答電文形式を次に示します。
表3-52 バイナリ形式のブラウズ・メッセージ受信応答電文形式
| 情報 | 電文内のタグ名 |
|---|---|
| 受信メッセージ | ユーザ任意 |
●メッセージ送受信要求の応答電文
XML形式のメッセージ送受信応答電文形式を次に示します。
表3-53 XML形式のメッセージ送受信応答電文形式
| 情報 | 電文内のタグ名 | 返却値 |
|---|---|---|
| 受信メッセージ | ユーザ任意 | ユーザ任意 |
バイナリ形式のメッセージ送受信応答電文形式を次に示します。
表3-54 バイナリ形式のメッセージ送受信応答電文形式
| 情報 | 電文内のタグ名 |
|---|---|
| 受信メッセージ | ユーザ任意 |
各電文フォーマットのうち,サービス部品項目に設定する電文フォーマットがMessage Queueアダプタの電文フォーマットです。Message Queueアダプタの電文フォーマットの作成方法を説明します。
XMLフォーマット定義テンプレートファイルとカスタマイズの説明を次に示します。
図3-19 メッセージ送信要求電文用テンプレートファイル(adpmq_snd_request.xsd)
表3-55 メッセージ送信要求電文用テンプレートファイルの内容
| 行数 | 説明 |
|---|---|
| 4行目 | このテンプレートファイルの名前空間宣言を表します。ユーザは6行目に指定したtargetNamespace属性の値に任意の接頭辞を宣言します。 |
| 6行目 | このテンプレートファイルの対象名前空間を表します。ユーザはtargetNamespace属性の値に一意となる対象名前空間を指定します。 |
| 8行目 | 25行目でユーザデータ用のXMLスキーマ情報をインポートする場合,5行目にインポートするスキーマのターゲットネームスペースを,8行目にインポートするスキーマのインポート文を記述します。 |
| 10〜16行目 | SendRequest要素宣言を表します。要求電文のルート要素となる。mqheader要素とuserdata要素を持ちます。ユーザはmqheader要素とuserdata要素の接頭辞として4行目で宣言した接頭辞を記述します。 |
| 18〜22行目 | mqheader要素宣言を表します。 |
| 24行目 | userdata要素宣言を表します。 |
| 25行目 | ユーザデータ用のXMLスキーマ情報を記述します。
|
図3-20 メッセージ送受信要求電文用フォーマット定義テンプレートファイル(adpmq_sndrcv_request.xsd)
表3-56 メッセージ送受信要求電文用テンプレートファイルの内容
| 行数 | 説明 |
|---|---|
| 4行目 | このテンプレートファイルの名前空間宣言を表します。ユーザは6行目に指定したtargetNamespace属性の値に任意の接頭辞を宣言します。 |
| 6行目 | このテンプレートファイルの対象名前空間を表します。ユーザはtargetNamespace属性の値に一意となる対象名前空間を指定します。 |
| 8行目 | 26行目でユーザデータ用のXMLスキーマ情報をインポートする場合,5行目にインポートするスキーマのターゲットネームスペースを,8行目にインポートするスキーマのインポート文を記述します。 |
| 10〜16行目 | SndRcvRequest要素宣言を表します。要求電文のルート要素となるmqheader要素とuserdata要素を持ちます。ユーザはmqheader要素とuserdata要素の接頭辞として4行目で宣言した接頭辞を記述します。 |
| 18〜23行目 | mqheader要素宣言を表します。 |
| 21行目 | 受信キュー特定情報の指定要素を表します。この指定個所がメッセージ送信要求用テンプレートファイルと異なります。 |
| 25行目 | userdata要素宣言を表します。 |
| 26行目 | ユーザデータ用のXMLスキーマ情報を記述します。
|
データ変換(マッピング)定義画面で,変換元の電文フォーマット定義ファイルおよび変換先の電文フォーマット定義ファイルを設定して,データ変換を定義します。
データ変換の定義方法については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「6. データ変換の定義」を参照してください。
Message Queueアダプタを定義する場合の手順を次に示します。設定内容の詳細は,「3.3.17(9) Message Queueアダプタの場合」を参照してください。
Message Queueアダプタの環境定義に必要な情報は,XML形式のMessage Queueアダプタ環境定義ファイルに定義します。
Message Queueアダプタ環境定義ファイルの編集手順を示します。
Message Queueアダプタの通信構成定義に必要な情報は,XML形式のMessage Queueアダプタ通信構成定義ファイルに定義します。
Message Queueアダプタ通信構成定義ファイルの編集手順を示します。
アプリケーション統合属性ファイルの編集方法について説明します。
アプリケーション統合属性ファイルの編集手順を示します。
アプリケーション統合属性ファイルの内容を次に示します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hitachi-application-all-property PUBLIC
'-//Hitachi, Ltd.//DTD Application All Property 7.6//EN' 'http://localhost/hitachi-application-all-property_7_6.dtd'>
<!-- All Rights Reserved. Copyright (C) 2008, Hitachi, Ltd. -->
<hitachi-application-all-property>
<hitachi-application-property>
<lookup-name>CSCMQ</lookup-name>
<security-prop>
<security-method>no_security_for_methods_without_roles</security-method>
</security-prop>
<managed-by-ctm>false</managed-by-ctm>
</hitachi-application-property>
<ejb-jar>
<hitachi-ejb-jar-property>
<display-name>CSCMsgServiceAdapter</display-name>
</hitachi-ejb-jar-property>
<hitachi-session-bean-property>
<display-name>CSCMsgServiceAdapterEJB</display-name>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<resource-ref>
<res-ref-name>jms/リソースアダプタ特定情報</res-ref-name>
<res-type>javax.jms.QueueConnectionFactory</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Unshareable</res-sharing-scope>
<linked-to>リソースアダプタ表示名</linked-to>
</resource-ref>
<resource-env-ref>
<resource-env-ref-name>送信キュー特定情報または受信キュー特定情報</resource-env-ref-name>
<resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
<linked-adminobject>
<resourceadapter-name>リソースアダプタ表示名</resourceadapter-name>
<adminobject-name>管理対象オブジェクト名</adminobject-name>
</linked-adminobject>
</resource-env-ref>
<container-transaction>
<description></description>
<method>
<description></description>
<method-intf></method-intf>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<session-runtime>
<lookup-name>CSCMsgServiceAdapterEJB</lookup-name>
<optional-name></optional-name>
<maximum-sessions>0</maximum-sessions>
<stateless>
<pooled-instance>
<minimum>インスタンス最小数</minimum>
<maximum>インスタンス最大数</maximum>
</pooled-instance>
</stateless>
</session-runtime>
</hitachi-session-bean-property>
</ejb-jar>
</hitachi-application-all-property>
|
定義の設定値について説明します。
アプリケーション統合属性ファイルの詳細については,次の個所を参照してください。
Message Queueアダプタの場合,Message Queueアダプタ実行環境プロパティファイルを作成する必要があります。
Message Queueアダプタ実行環境プロパティファイルの詳細は,マニュアル「サービスプラットフォーム リファレンス」の「Message Queueアダプタ実行環境プロパティファイル」を参照してください。
All Rights Reserved. Copyright (C) 2012, 2019, Hitachi, Ltd.