4

LinuxでWeblogic10.3を実行していて、WebspereMQへのブリッジを設定しました。WeblogicからTextMesasgeを送信していますが、MQに転送されています。しかし、MQ側で次のようなメッセージを読んでいるとき

// Receiver reader - my class
reader.qMgr = new MQQueueManager(qManager);
int openOptions = MQOO_INPUT_AS_Q_DEF | MQOO_OUTPUT ;

MQQueue localQueue = reader.qMgr.accessQueue(queueName, openOptions);
MQMessage msg = new MQMessage();
MQGetMessageOptions gmo = new MQGetMessageOptions(); 
localQueue.get(msg, gmo);

int n = msg.getDataLength();
System.out.println("The message is " + n + " bytes long");
String msgText = msg.readStringOfByteLength(n);
System.out.println("The message is: " + msgText);

私は得ています:

メッセージの長さは154バイトです。メッセージは次のとおりです。RFH��MQSTR�jms_textHqueue:/// Q113575850399442 ABCDE

「ABCDE」は私のメッセージです。

メッセージが単純な「ABCDE」として読み取られるように、WebsphereMQにJMS->MQ変換を実行するように指示する方法はありますか?

ありがとう

4

2 に答える 2

3

メッセージを送信するプログラムは、ここでTARGCLIENT説明するようにパラメーターを設定する必要があります。

すべてのWMQV6.xはサポートされていないことに注意してください。サポートされているバージョンの1つ(すべてのv7.x)を使用する場合は、キューのPROPCTL属性を設定して、コードをほとんどまたはまったく変更せずにQMgrがJMSヘッダーを削除するようにすることができます。

会社がサポート契約を結んでいる場合は、PassportAdvantageから新しいバージョンのWMQを入手できます。新しいクライアントは、SupportPacMQC75として無料で利用できます。 クライアントとQMgrのバージョンを混在させることができ、新しいクライアントには多くのバグ修正と新機能があります(それらの多くは、古いQMgrに接続しているときでも使用できます)。新しいクライアントとQMgrにも、V6コードに存在しないセキュリティパッチがあります。少なくともクライアントのサポートされているバージョンを入手してみてください。無料ですが、できればQMgrも同様です。

于 2013-01-08T07:42:26.710 に答える
0

WebSphereMQ側でサポートされているJMSAPIを使用する場合、メッセージの内容を取得するために変換を実行する必要はありません。

メッセージのコンテンツ(ABCDE)を返すjavax.jms.TextMessage.getText()メソッドを呼び出すだけです。

于 2013-01-07T21:38:06.230 に答える