1

WMB 6.1 で WMQ7.0 を使用する

メッセージを変換し、一部のデータを保持するためにMQRFH2.usrを使用する 1 つのフローがあります。

しかし、MQRFH2.usrがメインのメッセージ本文に含まれているという問題に直面しています。

同じコードを異なる環境に展開しましたが、この問題が発生するのは 1 つの環境だけです。

したがって、コードの問題ではないようです。構成と関係があります。

考えられる原因を教えてください。

4

2 に答える 2

1

キューのPROPCTL設定を確認してください。これが に設定されているNONE場合、動作は次のようになります。

アプリケーションがメッセージ ハンドルを作成しない場合、すべてのメッセージ プロパティが MQRFH2 から削除されます。MQRFH2 ヘッダーの名前と値のペアは、メッセージに残されます。

ドキュメント ページを数回読み、さまざまな設定でテストしPROPCTLて、アプリが受信するメッセージ コンテンツをどのように変更するかを完全に理解してください。

于 2013-01-04T14:30:37.977 に答える
0

MQRFH2 ヘッダーが存在する場合は、常にメッセージのペイロード部分に含まれます (これが webphere の編成方法です)。1 つ以上の MQRFH2 ヘッダー (構造) を受け取ることができます。

おそらく、あなたは1つだけを期待していて、2つを受け取っていますか? これは、メッセージデータが意味不明のままになっていることを説明します.

次のコードを使用して、メッセージの受信時にこれらのヒアリングを処理します

MQRFH2 header = null;

// Find and store message length
int msglen = replyMessage.getMessageLength();

MQHeaderList list = new MQHeaderList(replyMessage);
int indexOf = list.indexOf("MQRFH2");
if (indexOf >= 0) {
    header = (MQRFH2) list.get(indexOf);
    msglen = msglen - header.size();
}

String msgText = replyMessage.readStringOfCharLength(msglen);

それが役に立てば幸い。

マーティンズ

于 2013-06-17T11:36:56.697 に答える