WebSphere Bridge for HTTP のメッセージ・タイプおよびメッセージ・マッピング

WebSphere® MQ bridge for HTTP は 4 つのメッセージ・クラス、TEXTBYTESSTREAM、および MAP をサポートしています。メッセージ・クラスは JMS メッセージ・タイプと HTTP Content-Type にマップされます。

HTTP POST

宛先に到達するメッセージ・タイプは、x-msg-class ヘッダーの値または HTTP 要求の Content-Type に応じて異なります。表 1に、各 x-msg-class に対応する HTTP Content-Type のタイプを示します。どちらのフィールドも、メッセージ・タイプとメッセージ・フォーマットを設定するために使用されることがあります。両方のフィールドが設定されていて、それが矛盾した設定である場合は、Bad Request 例外 (HTTP 400, MQHTTP20004) が返されます。

表 1. x-msg-class と HTTP Content-Type のマッピング
x-msg-class HTTP Content-Type
BYTES

application/octet-stream
application/xml

TEXT

text/*

MAP

application/x-www-form-urlencoded
application/xml (オプション)

STREAM

application/xml (オプション)

JMS メッセージ・タイプが MQRFH2 ヘッダーに設定されている場合、表 2に従ってマップされます。

表 2. x-msg-class と JMS メッセージ・タイプのマッピング
x-msg-class JMS メッセージ・タイプ
BYTES jms_bytes
TEXT jms_text
MAP jms_map
STREAM jms_stream

メッセージ・クラスが MAP または STREAM の場合は、JMS メッセージ・タイプが常に設定されます。メッセージ・クラスが BYTES または TEXT の場合は、常に設定されるとは限りません。要求に MQRFH2 が作成される場合は、常に JMS メッセージ・タイプが設定されます。一方、MQRFH2 が作成されない場合は、JMS メッセージ・タイプは設定されません。ユーザー・プロパティーが x-msg-usr ヘッダーを使用して要求内で設定されている場合、MQRFH2 が作成されます。

JMS メッセージ・タイプが設定されている場合、メッセージ・フォーマットは MQFMT_NONE に設定されます。表 4を参照してください。

表 3. x-msg-class と WebSphere MQ メッセージ・フォーマットのマッピング
x-msg-class メッセージに MQRFH2 がある場合のメッセージ・フォーマット メッセージに MQRFH2ない 場合のメッセージ・フォーマット
BYTES MQFMT_NONE MQFMT_NONE
TEXT MQFMT_NONE MQFMT_STRING
MAP MQFMT_NONE 不可能
STREAM MQFMT_NONE 不可能

HTTP GET または DELETE

取得したメッセージ・タイプまたはメッセージ・フォーマットによって、HTTP 応答の x-msg-class ヘッダーの値および Content-Type が決定します。x-msg-class ヘッダーは、x-msg-headers 要求内で要求される場合に限り、返されます。

表 4 は、x-msg-classContent-Type との間のマッピング、およびキューまたはトピックから取得されたメッセージ・タイプを説明しています。

表 4. メッセージ・タイプの x-msg-class および Content-Type へのマッピング
メッセージ形式 JMS メッセージ・タイプ x-msg-class Content-Type
MQFMT_STRING 以外のすべて なし BYTES application/octet-stream
MQFMT_STRING なし TEXT text/plain
MQFMT_NONE jms_bytes BYTES application/octet-stream
MQFMT_NONE jms_text TEXT text/plain
MQFMT_NONE jms_map MAP application/xml
MQFMT_NONE jms_stream STREAM application/xml

メッセージ・クラス MAPSTREAM のシリアライゼーション

MAP および STREAM メッセージ・クラスは、メッセージがキューにシリアライズされるのと同じ方法でシリアライズされ、HTTP 応答でクライアントに戻されます。

MAP の場合、XML 名、タイプ、および値のトリプレットは、次のようにエンコードされます。
<map>
	<elt name="elementname1" dt="datatype1">value1</elt>
	<elt name="elementname2" dt="datatype2">value2</elt>
	...
</map>
STREAMMAP に似ていますが、エレメント名はありません。
<stream>
	<elt dt="datatype1">value1</elt>
	<elt dt="datatype2">value2</elt>
	...
</stream>
注: datatype は、ユーザー定義プロパティーの定義用に定義されているデータ・タイプの 1 つで、usr: HTTP x-msg-usr エンティティー・ヘッダー にリストされています。 デフォルトのデータ・タイプは string であるため、ストリング・エレメントの属性 dt="string" は省略されます。

資料 資料

フィードバック

タイム・スタンプ・アイコン 最終更新: 2018 年 10 月 2 日 (火)
http://www.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.ref.dev.doc/com.ibm.mq.ref.dev.doc/q111120_.htm ts21280_