|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
JMS CLient Send a Message without MQRFH2 |
« View previous topic :: View next topic » |
Author |
Message
|
pauillac |
Posted: Sat Nov 03, 2001 6:50 am Post subject: |
|
|
Novice
Joined: 13 Jul 2001 Posts: 21
|
Hi,
By default, an JMS Client will send a MQSeries messages with MQRFH2 Header unless the TARGCLIENT property is set in JMSAdmin Tool for queue objects.
Currently I have a JMS Client application using a queue with the property set to eliminate MQRFH2 Header - the message consists of MQMD and then message payload only. I set the correlation ID to '00001' using setJMSCorrelationID and it is converted nicely by JMS runtime to MQMD Correlation ID, i.e. string '00001' to its byte representation. However, when I use another JMS program to get the message back and print out the CorrelationID returned by getJMSCorrelationID it shows the byte representation of the CorrelationID field as a string as you can see in MQSeries Explorer - "303030303100000000000000000000000000000000000000" instead of '00001'. So is there any way to get the Correlation ID as '00001' without changing code. (For example, say parameter setting of MQSeries runtime. The reason why I don't what to change code is that the source code is in a vendor's hand and they are very slow to process our change request.) It seems to MQSeries runtime only changes Correlation ID from JMS call to MQMD byte representation but not the other way round.
Strange enough if I turn on the MQRFH2 header the CorrelationID is stored in NameValueData as 00001 and I can get back the Correlation ID as '00001'.
Thanks |
|
Back to top |
|
 |
kolban |
Posted: Sat Nov 03, 2001 7:00 am Post subject: |
|
|
 Grand Master
Joined: 22 May 2001 Posts: 1072 Location: Fort Worth, TX, USA
|
I think you hit the nail on the head by saying that the message was put to the queue without an MQRFH2. What this implies is that the consumer will NOT be a JMS application but a native MQSeries app. Since the problem seems to show up when the message is retrieved by a JMS app then this quirk (which I agree doesn't sound right) may be within acceptable limits.
Why was the message put to the queue without an MQRFH2 when it is now being read by a JMS app?
|
|
Back to top |
|
 |
pauillac |
Posted: Sat Nov 03, 2001 7:36 pm Post subject: |
|
|
Novice
Joined: 13 Jul 2001 Posts: 21
|
Hi,
The reason why the reply message doesn't have a MQRFH2 header is:
The JMS application is one of a number of applications talking to MQSI. There are many other applications coded in MQI that need to tap into the same set of MQSI message transformation services. I want to keep the reply message generic from MQSI by eliminating the MQRFH2 - I don't want to check the client type (JMS or MQSeries) to tailor made the reply message.
I think if the JMS application uses MQSeries native message ID as correlation ID that this would not be a problem. However, we outsource the project to an india vendor and they devise their own correlation ID generator with the format "00001" and they are reluctant to change without sound technical reason.
See if you can help me to confirm that with MQRFH2 turned off MQSeries Classes for Java (JMS) can only convert Correlation ID supplied by JMS application in a string format to its byte representation for MQMD.CorrelID but not the other way round.
Thanks a lot |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|