ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » WMB 6.0.0.3 \ Setting CorrelId Prob [a singularity bug]

Post new topic  Reply to topic
 WMB 6.0.0.3 \ Setting CorrelId Prob [a singularity bug] « View previous topic :: View next topic » 
Author Message
hopsala
PostPosted: Mon Aug 04, 2008 3:27 am    Post subject: WMB 6.0.0.3 \ Setting CorrelId Prob [a singularity bug] Reply with quote

Guardian

Joined: 24 Sep 2004
Posts: 960

Hi,

I have a flow, which begins with HTTPInput (so I don't have a ready-made MQMD, I need to create one) and i'm trying to get a message by CorrelId. My compute node code looks like this:
Code:
CREATE NEXTSIBLING OF OutputRoot.Properties DOMAIN 'MQMD';
SET OutputRoot.MQMD.CorrelId = Environment.SavedWrittenMQDestination.msgId;

(SavedWrittenMQDestination was previously set after sending a request message with "new msgid" flag.)

Here's the deal:
1. Before the compute node, in debug mode, I see only Properties and XML under the message tree.
2. after executing the last line, I see an "MQMD" tree with "CorrelId" set to the correct value (i.e 3753953fd3...). There are no other children under MQMD.
3. After the compute node - and I mean immediately after, no code is performed between the SET CorrelId and this point - I see an MQMD with many children (msgid, expiry etc) but the CorrelId is set to zero (0000..) !

It seems to me that WMB initializes the MQMD fields I had not set, and for some reason overwrites my correlid value... ??

Now, this is either a bug or a very odd feature (I'm thinking a bug). Has anyone encountered this? Is this known behavior?


Last edited by hopsala on Sun Aug 10, 2008 7:42 am; edited 1 time in total
Back to top
View user's profile Send private message
AkankshA
PostPosted: Mon Aug 04, 2008 4:10 am    Post subject: Reply with quote

Grand Master

Joined: 12 Jan 2006
Posts: 1494
Location: Singapore

I generally set these properties while craeting MQMD header afresh

CREATE NEXTSIBLING OF OutputRoot.Properties DOMAIN 'MQMD';
SET OutputRoot.MQMD.StrucId = MQMD_STRUC_ID;
SET OutputRoot.MQMD.Version = MQMD_CURRENT_VERSION;
SET OutputRoot.MQMD.MsgType = MQMT_DATAGRAM;
SET OutputRoot.MQMD.Format = MQFMT_RF_HEADER_2 ;
_________________
Cheers
Back to top
View user's profile Send private message Visit poster's website
mqjeff
PostPosted: Mon Aug 04, 2008 5:00 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

In MB 6.0, OutputRoot.Properties takes precedence over OutputRoot.MQMD fields, where fields map to each other.

In MB6.1, on the other hand, it depends more on which ones you change.
Back to top
View user's profile Send private message
Bill.Matthews
PostPosted: Mon Aug 04, 2008 12:54 pm    Post subject: Reply with quote

Master

Joined: 23 Sep 2003
Posts: 232
Location: IBM (Retired)

Take the simple route and set the value in both places (MQMD and Properties).

You could also do some reading of the docs and find where this is explained. I'll leave that to you.

My personal preference when creating an MQMD is to set the StrucId, the put date & time and for testing purposes set an putting application name that reflects that it was created by a message flow. All of the remainder of the fields will be created for you - as specified in the precedence statements in the help.
_________________
Bill Matthews
Back to top
View user's profile Send private message
p.cradwick
PostPosted: Mon Aug 04, 2008 5:36 pm    Post subject: Reply with quote

Acolyte

Joined: 16 May 2001
Posts: 56

I found the bare minimum for MQMD is:

SET mqmdRef.StrucId = MQMD_STRUC_ID;
SET mqmdRef.Version = MQMD_CURRENT_VERSION;
SET mqmdRef.MsgType = MQMT_DATAGRAM;
Back to top
View user's profile Send private message Send e-mail
hopsala
PostPosted: Tue Aug 05, 2008 4:01 am    Post subject: Reply with quote

Guardian

Joined: 24 Sep 2004
Posts: 960

mqjeff wrote:
In MB 6.0, OutputRoot.Properties takes precedence over OutputRoot.MQMD fields, where fields map to each other.

Bill.Matthews wrote:
Take the simple route and set the value in both places (MQMD and Properties).

I don't quite follow what you're talking about here - AFAIK msgId is not a field in Properties, and has relevance only in MQMD.. no?

I have found a way to work around this - I have two compute nodes, one after the other, the first runs the code mentioned above, the second sets the CorrelId. After the first I have an MQMD tree with CorrelId=0000.., after the second the CorrelId is set to the correct value.

Obviously, this is not a likely candidate for "most aesthetic workaround of the year", and I am still highly doubtul that all this is expected WMB behavior. Does anyone have a cleaner solution, or an actual purpose-oriented explanation as to why should WMB delete field valued after they had been explicitly assigned?
Back to top
View user's profile Send private message
hopsala
PostPosted: Sun Aug 10, 2008 7:41 am    Post subject: Reply with quote

Guardian

Joined: 24 Sep 2004
Posts: 960

Well, I've tried running the same flow on two other brokers and the said problem does not occur - that is, the CorrelId is set properly. So apparently it's just a good ol' bug, and it's time to reinstall my broker..

Thanks for all who helped.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » WMB 6.0.0.3 \ Setting CorrelId Prob [a singularity bug]
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.