JMS メッセージの変換

JMSInput および JMSOutput ノードは JMS メッセージを予期するため、ネイティブ JMS メッセージ・ツリー表現を予期します。

以下のノードを使用して、 WebSphere® MQ JMS メッセージ・ツリーと JMS メッセージ・ツリーの間でメッセージを変換できます。
  • JMSMQTransform ノード
  • MQJMSTransform ノード

これらのノードには、構成可能なプロパティーがありません。 JMSMQTransform ノードは、ネイティブのJMSメッセージツリーを IBM® MQ のJMSメッセージツリーに変換し、 MQJMSTransform ノードは逆方向の変換を行います。

以下の図は、使用されているマッピング体系の概要を示しています。

ネイティブJMSメッセージツリーと IBM MQ のJMSメッセージツリー間の変換を示す図

このマッピング図は、 IBM MQ のJMSプロバイダと同じ方式を用いて、JMSメッセージとMQMDまたは MQRFH2 メッセージ間の変換を行います。

IBM MQ メッセージツリーとネイティブJMSメッセージツリーの間で変換を行う際、変換ノードはメッセージツリーの異なる部分から要素をコピーします:

  • 以下のフィールドが着信 JMS メッセージ内にある場合には、JMS メッセージから MQMD にコピーされます。
    JMS フィールド MQMD フィールド
    JMSMessageID MsgId
    JMSCorrelationID CorrelId
    JMSPriority 優先順位
    JMSDeliveryMode 永続性
    JMSQApplid PutApplName
    JMSUser UserIdentifier
    JMSXDeliveryCount BackoutCount - 1
    JMSTimeStamp PutDate, PutTime
  • 以下のフィールドは、JMS メッセージから MQRFH2 JMS フォルダーにコピーされます。
    JMS フィールド MQRFH2 JMS フィールド
    JMSDestination Dst
    JMSDeliveryMode Dlv
    JMSExpiration Exp
    JMSPriority Pri
    JMSTimestamp Tms
    JMSCorrelationID Cid
    JMSReplyTo Rto
  • 以下のフィールドは、MQMD から JMS メッセージにコピーされます。
    MQMD フィールド JMS フィールド
    有効期限 JMSExpiration
    永続性 JMSDeliveryMode
    優先順位 JMSPriority
    MsgId JMSMessageID
    CorrelId JMSCorrelationID
    BackoutCount = 0 JMSRedelivered = false
    BackoutCount > 0 JMSRedelivered = true
    GroupId JMSGroupid
    MsgSeqNumber JMSGroupseq
    UserIdentifier JMSUser
    PutApplName JMSApplid
    PutDate, PutTime JMSTimeStamp
  • 以下のフィールドは、MQRFH2 JMS フォルダーから JMS メッセージにコピーされます。
    MQRFH2 JMS フィールド JMS フィールド
    Dst JMSDestination
    Dlv JMSDeliveryMode
    Pri JMSPriority
    Cid JMSCorrelationID
    Rto JMSReplyTo

メッセージ・フロー・シナリオの例: JMSInput ノードから MQOutput ノードへ

JMSInput ノードから JMSMQTransform ノードを経由する MQOutput ノードへのメッセージ・フローを示す図
  1. JMSInput ノードは、トピック ABC にサブスクライブするように構成されます。
  2. JMS サーバーに接続されたアプリケーションは、トピック ABC に関してパブリッシュします。
  3. パブリケーションは、 JMSInput ノードで受信されます。
  4. ノードはデータを JMS メッセージから抽出します。
  5. JMSメッセージは JMSMQTransform ノードに渡され、そこでメッセージは IBM MQ メッセージに変換されます。
  6. MQOutput ノードは IBM MQ メッセージを受信し、そのメッセージを IBM MQ キューにパブリッシュします。

最終的な送信先は IBM MQ キューであるため、メッセージは MQOutput ノードに到達する前に、 JMSMQTransform ノードを通過して、メッセージツリーを IBM MQ のJMS形式に変換する必要があります。

メッセージ・フロー・シナリオの例: MQInput ノードから JMSOutput ノードへ

MQJMSTransform ノードを介した MQInput ノードから JMSOutput ノードへのメッセージ・フローを示す図
  1. MQInput ノードは、 IBM MQ キューからメッセージを受信します。
  2. MQInput ノードは、 IBM MQ メッセージを作成します。
  3. MQ メッセージは、メッセージ・ツリーが JMS 形式に変換される MQJMSTransform ノードに渡されます。
  4. JMSOutput ノードは、JMS メッセージを受信し、トピック XYZ で JMS メッセージをパブリッシュします。

追加の例

これらの例は、JMS トランスポートを使用して実現できるいくつかのソリューションを示しています。 その他の解決策としては、例えば、メッセージを Compute ノードまたは JavaCompute ノードに渡したり、必要に応じて内容を変更したりすることができます。