Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 受付・アダプタ定義編


2.6.2 Message Queue受付の電文フォーマットを作成する

Message Queue受付で使用する電文フォーマットの形式,および作成方法について説明します。

〈この項の構成〉

(1) 電文フォーマットの形式

Message Queue受付で扱うJMSメッセージは,JMSヘッダ,プロパティ,およびボディで構成されます。

Message Queue受付で使用する電文フォーマットの形式について説明します。

(a) ヘッダ電文の形式

Message Queue受付からビジネスプロセスに渡す要求電文のヘッダには,JMSメッセージのJMSヘッダとプロパティに指定されたデータを設定します。

Message Queue受付からビジネスプロセスに渡す要求電文フォーマット(ヘッダ変数用)を次に示します。名前空間名は「http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/mq/header」です。

表2‒21 Message Queue受付のヘッダ電文の要求電文フォーマット

タグ名

種別

出現回数

説明

<mq_header>

1回

<jms_header>

string

1回

JMSヘッダの内容が設定されます。

<JMSDestination>

string

1回

メッセージが設定されているキュー名が設定されます。

<JMSDeliveryMode>

string

1回

メッセージの永続性を示す値が設定されます。

<JMSMessageID>

string

1回

プロバイダによって送信される各メッセージを一意に識別するメッセージ識別子が設定されます。

<JMSTimestamp>

string

1回

メッセージの送信時刻を表す値が設定されます。(単位:ミリ秒)

<JMSExpiration>

string

1回

メッセージの有効期間となる時刻を表す値が設定されます。(単位:ミリ秒)

<JMSRedelivered>

string

1回

メッセージが再配送中であるかどうかを示す値が設定されます。

<JMSPriority>

string

1回

メッセージのプライオリティが設定されます。

<JMSReplyTo>

string

1回

応答先のあて先が設定されます。

この情報は,Message Queue受付では使用しません。

<JMSCorrelationID>

string

1回

あるメッセージをほかのメッセージと関連づけるための相関識別子が設定されます。

<JMSType>

string

1回

メッセージが送信されるときに,アプリケーションによって提供されるメッセージタイプが設定されます。

<JMSHeaderExtension>

string

0回以上

次の値が設定されます。

属性に"name"を持ち,JMSヘッダの名称が設定されます。

値には,nameに設定されたJMSヘッダの値が設定されます。

<user_property>

1回

ユーザが設定したプロパティの内容が設定されます。

<property>

string

0回以上

次の値が設定されます。このタグは設定されたプロパティの個数分生成されます。

属性に"name"を持ち,プロパティの名称が設定されます。

値には,nameに設定されたプロパティの値が設定されます。

(凡例)

−:該当する項目はありません。

(b) ボディ電文の形式

要求電文のボディに格納された本文は,ボディ電文としてビジネスプロセスに渡します。

ボディ電文の種別は,JMSメッセージのインターフェースとユーザ定義受付定義の設定によって異なります。ボディ電文の電文種別を次に示します。

表2‒22 ボディ電文の電文種別

インターフェース名

ユーザ定義受付定義の設定

(要求電文フォーマット指定あり)

any型の指定なし

any型の指定あり

BytesMessage

バイナリ電文

任意形式の電文

TextMessage

XML電文

任意形式の電文

(2) 電文フォーマットの作成方法

Message Queue受付で使用する電文フォーマットの作成方法について説明します。

(a) ヘッダ電文の作成

Message Queue受付のヘッダ電文の電文フォーマットは,サービスプラットフォームが提供するXMLスキーマを編集して利用します。そのため,ヘッダ電文のXMLスキーマの作成は不要です。

サービスプラットフォームが提供する電文フォーマットのXMLスキーマは,「<サービスプラットフォームのインストールディレクトリ>\CSC\custom-reception\mq\schema」に格納されています。

サービスプラットフォームが提供するXMLスキーマの内容を次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<!-- All Rights Reserved. Copyright (C) 2014, Hitachi, Ltd. -->
<xsd:schema elementFormDefault="qualified"
           targetNamespace="http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/mq/header" 
           xmlns:mhc="http://www.hitachi.co.jp/soft/xml/cosminexus/csc/reception/mq/header" 
           xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 
 <xsd:element name="mq_header">
  <xsd:complexType>
   <xsd:sequence>
     <xsd:element name="jms_header" maxOccurs="1" minOccurs="0">
      <xsd:complexType>
       <xsd:sequence>
        <xsd:element name="JMSDestination" maxOccurs="1" minOccurs="0" nillable="true" type="xsd:string"/>
        <xsd:element name="JMSDeliveryMode" maxOccurs="1" minOccurs="0" nillable="true" type="xsd:string"/>
        <xsd:element name="JMSMessageID" maxOccurs="1" minOccurs="0" nillable="true" type="xsd:string"/>
        <xsd:element name="JMSTimestamp" maxOccurs="1" minOccurs="0" nillable="true" type="xsd:string"/>
        <xsd:element name="JMSExpiration" maxOccurs="1" minOccurs="0" nillable="true" type="xsd:string"/>
        <xsd:element name="JMSRedelivered" maxOccurs="1" minOccurs="0" nillable="true" type="xsd:string"/>
        <xsd:element name="JMSPriority" maxOccurs="1" minOccurs="0" nillable="true" type="xsd:string"/>
        <xsd:element name="JMSReplyTo" maxOccurs="1" minOccurs="0" nillable="true" type="xsd:string"/>
        <xsd:element name="JMSCorrelationID" maxOccurs="1" minOccurs="0" nillable="true" type="xsd:string"/>
        <xsd:element name="JMSType" maxOccurs="1" minOccurs="0" nillable="true" type="xsd:string"/>
        <xsd:element name=" JMSHeaderExtension " minOccurs="0" maxOccurs="unbounded" >
         <xsd:complexType>
          <xsd:simpleContent>
           <xsd:extension base="xsd:string">
            <xsd:attribute name="name" type="xsd:string" use="optional"/>
           </xsd:extension>
          </xsd:simpleContent>
         </xsd:complexType>
        </xsd:element>
       </xsd:sequence>
      </xsd:complexType>
     </xsd:element>
     <xsd:element name="user_property" maxOccurs="1" minOccurs="0">
      <xsd:complexType>
       <xsd:sequence>
        <xsd:element name="property" minOccurs="0" maxOccurs="unbounded" >
         <xsd:complexType>
          <xsd:simpleContent>
           <xsd:extension base="xsd:string">
            <xsd:attribute name="name" type="xsd:string" use="optional"/>
           </xsd:extension>
          </xsd:simpleContent>
         </xsd:complexType>
        </xsd:element>
       </xsd:sequence>
      </xsd:complexType>
     </xsd:element>
   </xsd:sequence>
  </xsd:complexType>
 </xsd:element>
</xsd:schema>

(b) ボディ電文の作成

Message Queue受付のボディ電文の電文フォーマットについては,スキーマの形式は任意です。ボディ電文の電文種別に合わせてスキーマを作成する必要があります。なお,電文種別が任意形式(any型の指定あり)の場合はスキーマの作成は不要です。