TextMessagemsg.setLongProperty("publishSequence", pubSeq);
にLongプロパティを設定し、それをローカルのIBM WebSphere MQキュー・マネージャーに送信して、リモート・キューに送信しています。メッセージは正常に送信されていますが、MQはMQプロパティをメッセージヘッダーに配置するときにLongプロパティを削除しています。
他の誰かが以前にこの問題に遭遇したことがありますか?もしそうなら、どのようにそれを回避しましたか?
TextMessagemsg.setLongProperty("publishSequence", pubSeq);
にLongプロパティを設定し、それをローカルのIBM WebSphere MQキュー・マネージャーに送信して、リモート・キューに送信しています。メッセージは正常に送信されていますが、MQはMQプロパティをメッセージヘッダーに配置するときにLongプロパティを削除しています。
他の誰かが以前にこの問題に遭遇したことがありますか?もしそうなら、どのようにそれを回避しましたか?
次のリンクは私の質問に答えることができました。私はテストしました、そしてそれは働きます。
MQQueuequeue.setMessageBodyStyle(WMQConstants.WMQ_MESSAGE_BODY_JMS);
オブジェクトでボディスタイルをJMSに設定して、プロパティを保持するようにしました。
設定しているプロパティは、メッセージヘッダーにマップされません。古いバージョンのWMQではRFH2ヘッダーにマップされていましたが、新しいバージョンのWMQ(V7.1以降)では、メッセージプロパティセッター/ゲッターメソッドを使用してプロパティにアクセスできるため、通常はRFH2ヘッダーは表示されません。
RFH2ヘッダーを表示するかどうかを制御するために、キューとチャネルPROPCTL
に存在する属性があります。設定方法によっては、RFH2ヘッダーが生成されないため、プロパティはペイロードに表示されません。PROPCTLを設定すると、WMQにRFH2ヘッダー付きのメッセージを配信させることができ、そこでプロパティを確認できます。それ以外の場合は、プロパティgetterメソッドを使用する必要がありますが、そこにマップされているのはプロパティではないため、どのような場合でもメッセージヘッダーにプロパティは表示されません。
詳細については、インフォセンターのトピック「JMSフィールドのWebSphere MQフィールドへのマッピング(送信メッセージ) 」を参照してください。