ページの先頭行へ戻る
Interstage Service Integrator V9.5.0 アプリケーション開発ガイド
FUJITSU Software

6.4.4 MQ連携時のメッセージマッピング

WebSphere MQのメッセージは、ユーザデータが格納されるアプリケーション・データ部分と、メッセージ・ヘッダー(MQMD)部分で構成されています。各データのISIでの扱いは以下の通りです。

WebSphere MQのメッセージの詳細は、WebSphere MQの関連マニュアルを参照してください。

アプリケーション・データ

ISIでWebSphere MQのキューからメッセージを受信する場合、WebSphere MQのメッセージのアプリケーション・データ部分がISIの共通メッセージのペイロードにマッピングされます。

ISIからWebSphere MQのキューへメッセージを送信する場合、ISIの共通メッセージのペイロードがWebSphere MQのメッセージのアプリケーション・データ部分にマッピングされます。

メッセージヘッダ(MQMD)

ISIからWebSphere MQのキューへメッセージを送信する場合、ISIの共通メッセージのヘッダに設定されたMQMD用のデータが、MQメッセージのフィールドにマッピングされます。ISIの共通メッセージのヘッダにMQMD用のデータが設定されていない場合、“表6.8 メッセージ・ヘッダー(MQMD)の設定値”に示す内容でMQMDの値が自動的に設定されます。

ISIがMQキューからメッセージを受信する場合、MQメッセージのMQMDのフィールドがISIの共通メッセージのヘッダに設定されます。

MQMDマッピングの動作

ここでは、MQMDマッピングの動作の詳細について説明します。

ISIの共通メッセージのヘッダとMQMDのフィールドを相互にマッピングする場合、MQMDのフィールドのデータ型に応じて以下のように動作します。ISIの共通メッセージのヘッダとMQMDのフィールドの対応関係については“MQMDのフィールドとISIの共通メッセージヘッダのキーの対応関係”を参照してください。

MQMDマッピングが動作するタイミング

ここでは、MQMDマッピングが動作するタイミングについて説明します。

  1. MQからの受信時

    WebSphere MQからメッセージを受信したタイミングで、MQMDのフィールドをISIの共通メッセージヘッダにマッピングします。

  2. MQへの送信時(Oneway方式)

    ISIからWebSphere MQへOneway方式でメッセージを送信したタイミングで、ISIの共通メッセージヘッダにMQMD用のキーが設定されている場合、設定されている値をMQMDのフィールドにマッピングします。

  3. MQへの送信時(RequestResponse方式の要求メッセージ送信)

    ISIからWebSphere MQへRequestResponse方式の要求メッセージを送信したタイミングで、ISIの共通メッセージヘッダにMQMD用のキーが設定されている場合、設定されている値をMQMDのフィールドにマッピングします。

  4. MQへの応答時(RequestResponse方式の応答メッセージ受信)

    WebSphere MQからRequestResponse方式の応答メッセージを受信したタイミングで、MQMDのフィールドをISIの共通メッセージヘッダにマッピングします。

    MQMDマッピングを実施しないで運用したい場合、以下の2通りの方法があります。

MQMDのフィールドとISIの共通メッセージヘッダのキーの対応関係

MQMDのフィールド名とISIの共通メッセージヘッダのキー名の対応関係は以下の通りです。

MQMDフィールド名

ISIの共通メッセージヘッダ キー名

備考

Report

com.fujitsu.esi.mqmd.Report

NULL指定不可(注1)

MsgType

com.fujitsu.esi.mqmd.MsgType

NULL指定不可(注1)

Expiry

com.fujitsu.esi.mqmd.Expiry

NULL指定不可(注1)

Feedback

com.fujitsu.esi.mqmd.Feedback

NULL指定不可(注1)

Encoding

com.fujitsu.esi.mqmd.Encoding

NULL指定不可(注1)

CodedCharSetId

com.fujitsu.esi.mqmd.CodedCharSetId

NULL指定不可(注1)

Format

com.fujitsu.esi.mqmd.Format

Priority

com.fujitsu.esi.mqmd.Priority

NULL指定不可(注1)

Persistence

com.fujitsu.esi.mqmd.Persistence

NULL指定不可(注1)

MsgId

com.fujitsu.esi.mqmd.MsgId

バイナリ型(注2)

CorrelId

com.fujitsu.esi.mqmd.CorrelId

バイナリ型(注2)

BackoutCount

com.fujitsu.esi.mqmd.BackoutCount

ユーザ変更不可(注3)

ReplyToQ

com.fujitsu.esi.mqmd.ReplyToQ

ReplyToQMgr

com.fujitsu.esi.mqmd.ReplyToQMgr

(注4)

UserIdendifier

com.fujitsu.esi.mqmd.UserIdentifier

AccountingToken

com.fujitsu.esi.mqmd.AccountingToken

バイナリ型(注2)

ApplIdentityData

com.fujitsu.esi.mqmd.ApplIdentityData

PutApplType

com.fujitsu.esi.mqmd.PutApplType

NULL指定不可(注1)

PutApplName

com.fujitsu.esi.mqmd.PutApplName

PutDate

com.fujitsu.esi.mqmd.PutDate

エポックからの経過時間(ミリ秒)で保持

PutTime

ApplOriginData

com.fujitsu.esi.mqmd.ApplOriginData

以下は、サービスエンドポイント定義の“メッセージ・ヘッダー(MQMD)のバージョン”に“バージョン2”が指定された場合に付加されるフィールドです。

GroupId

com.fujitsu.esi.mqmd.GroupId

バイナリ型(注2)

ユーザ変更不可(注3)

MsgSeqNumber

com.fujitsu.esi.mqmd.MsgSeqNumber

ユーザ変更不可(注3)

Offset

com.fujitsu.esi.mqmd.Offset

ユーザ変更不可(注3)

MsgFlags

com.fujitsu.esi.mqmd.MsgFlags

NULL指定不可(注1)

OriginalLength

com.fujitsu.esi.mqmd.OriginalLength

ユーザ変更不可(注3)

注1:値としてNULLが指定された場合は、マッピングが実施されず“メッセージ・ヘッダー(MQMD)の設定値”に示す内容が自動的に設定されます。

注2:十六進表記文字列、または指定された文字コード(デフォルトは十六進表記文字列)を使用して、文字列型(String)とバイナリ型(byte[])を相互に変換します。

注3:WebSphere MQからのメッセージ受信時にはMQMDの値をISIの共通メッセージヘッダにマッピングしますが、WebSphere MQへのメッセージ送信時にはISIの共通メッセージヘッダの値をMQMDにマッピングできません。

注4: MQメッセージの送信時に「ReplyToQMgr」の値に空文字(“”)を指定した場合、WebSphere MQがデフォルトの値を自動的に付与します。

表6.8 メッセージ・ヘッダー(MQMD)の設定値

フィールド名

設定値

StrucId

MQMD_STRUC_ID

Version

サービスエンドポイント定義の“メッセージ・ヘッダー(MQMD)のバージョン”に指定された内容が設定されます。

詳細については、“ISI Studioヘルプ”を参照してください。

Report

MQRO_NONE

MsgType

MQMT_DATAGRAM

Expiry

MQEI_UNLIMITED

Feedback

MQFB_NONE

Encoding

MQENC_NATIVE

CodedCharSetId

MQCCSI_Q_MGR

Format

MQFMT_NONE

Priority

MQPRI_PRIORITY_AS_Q_DEF

Persistence

MQPER_PERSISTENCE_AS_Q_DEF

MsgId

MQMI_NONE

CorrelId

MQCI_NONE

BackoutCount

0

ReplyToQ

空白

ReplyToQMgr

空白

UserIdendifier

空白

AccountingToken

MQACT_NONE

ApplIdentityData

空白

PutApplType

MQAT_NO_CONTEXT

PutApplName

空白

PutDate

空白

PutTime

空白

ApplOriginData

空白

以下は、サービスエンドポイント定義の“メッセージ・ヘッダー(MQMD)のバージョン”に“バージョン2”が指定された場合に付加されるフィールドです。

GroupId

MQGI_NONE

MsgSeqNumber

1

Offset

0

MsgFlags

MQMF_NONE

OriginalLength

MQOL_UNDEFINED

各フィールドの詳細は、WebSphere MQの関連マニュアルを参照してください。