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 » Setting the RCD node properties at runtime

Post new topic  Reply to topic Goto page 1, 2  Next
 Setting the RCD node properties at runtime « View previous topic :: View next topic » 
Author Message
VanshulChawlaSA
PostPosted: Thu Jul 16, 2009 3:25 am    Post subject: Setting the RCD node properties at runtime Reply with quote

Novice

Joined: 03 Jul 2009
Posts: 14

Hi,

I need to set the property of the RCD node at runtime is i need to fetch the details like message domain,set,format,type from the incoming message and set it to the RCD node.
Is it possible?
Back to top
View user's profile Send private message
smdavies99
PostPosted: Thu Jul 16, 2009 4:19 am    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

You can do it in a Compute Node using ESQL and setting the values in the properties folder.
Remember to read the message as a BLOB though.

You may run into some problems if the message as an RFH2 Header that is populated with the domain etc so some careful thought is needed.
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
VanshulChawlaSA
PostPosted: Thu Jul 16, 2009 4:24 am    Post subject: Reply with quote

Novice

Joined: 03 Jul 2009
Posts: 14

I did this.I set the OutputRoot.Properties.XXXX for all the set,type,format but when i go to RCD( next to this Compute ) it fails there and exception is

"Message domain Blob" Some parser error

So RCD node is not picking the propeties from there
When i am doing the same for label node,its fine

Is it a case as RCD is having drop downs in node properties settings?

Can you elaborate if u think what u said will work?

It will be really helpful
Back to top
View user's profile Send private message
jbanoop
PostPosted: Thu Jul 16, 2009 4:34 am    Post subject: Reply with quote

Chevalier

Joined: 17 Sep 2005
Posts: 401
Location: SC

My understanding is that the RCD node just sets the message type, message format, message set properties and it does not trigger a parse itself. So changing the values in ESQL in a compute node could be sufficent. The next time an element is accessed within that message tree a parse is triggered which will use the newly set fields to do its job.
Back to top
View user's profile Send private message Yahoo Messenger
WMBDEV1
PostPosted: Thu Jul 16, 2009 4:44 am    Post subject: Reply with quote

Sentinel

Joined: 05 Mar 2009
Posts: 888
Location: UK

jbanoop wrote:
and it does not trigger a parse itself.


It can do.... depending on the parse timing set on the RCD node. If set to "immediate", it will do a parse immediately.

You could just do the parse in ESQL if you wanted and dynamically set the values you need in there.

Alternatively... if you have labels for the different formats that you expect you can route to the correct label which then has its own RCD node with the values correctly set at compile time.

Just some quick thoughts.
Back to top
View user's profile Send private message
jbanoop
PostPosted: Thu Jul 16, 2009 6:16 am    Post subject: Reply with quote

Chevalier

Joined: 17 Sep 2005
Posts: 401
Location: SC

From the infocenter:

http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r1m0/index.jsp?topic=/com.ibm.etools.mft.doc/ac04810_.htm

Quote:

ResetContentDescriptor node
Use the ResetContentDescriptor node to request that the message is reparsed by a different parser.
.......

Purpose
If you specify MRM as the new parser, you can also specify a different message template (message set, message type, and message format). This node does not reparse the message, but the properties that you set for this node determine how the message is parsed when it is next reparsed by the message flow.
Back to top
View user's profile Send private message Yahoo Messenger
WMBDEV1
PostPosted: Thu Jul 16, 2009 6:31 am    Post subject: Reply with quote

Sentinel

Joined: 05 Mar 2009
Posts: 888
Location: UK

Interesting but contrary to your link is this.....

http://www.ibm.com/developerworks/websphere/library/techarticles/0809_kudikala/0809_kudikala.html

"Avoid using Reset Content Descriptor nodes. An RCD node is intended to change the message domain which actually parses the complete message tree. This is both memory and CPU intensive activity. "

I still think if you choose the "immediate parse" option it will do an immediate parse.... This has been my experience in the past.
Back to top
View user's profile Send private message
jbanoop
PostPosted: Thu Jul 16, 2009 6:42 am    Post subject: Reply with quote

Chevalier

Joined: 17 Sep 2005
Posts: 401
Location: SC

My understanding is that the RCD just changes the values (very much like ESQL) and when the control returns to the message flow after coming out of the RCD, it causes (forces ??) a parse of the message. So theoretically RCD "does not" parse a message.
I would wait for the experts to comment
Back to top
View user's profile Send private message Yahoo Messenger
WMBDEV1
PostPosted: Thu Jul 16, 2009 7:10 am    Post subject: Reply with quote

Sentinel

Joined: 05 Mar 2009
Posts: 888
Location: UK

jbanoop wrote:
I would wait for the experts to comment


Ok... but in the absence of this you could try a very simple test flow.....

Create an XML schema with an enumeration on a field. Generate a message set from this. Connect MQInput to a RCD that uses the MRM domain (and mset /type values) to validate content and value and use the "immediate parse" option. Then send in an XML message that does not contain a value in the enumeration.

If an exception is thrown indicating the enumeration is not satisified the node must have parsed it right?
Back to top
View user's profile Send private message
ovasquez
PostPosted: Mon Jul 20, 2009 9:26 pm    Post subject: Re: Setting the RCD node properties at runtime Reply with quote

Centurion

Joined: 09 Dec 2005
Posts: 141
Location: Lima, Peru

VanshulChawlaSA wrote:
Hi,

I need to set the property of the RCD node at runtime is i need to fetch the details like message domain,set,format,type from the incoming message and set it to the RCD node.
Is it possible?


Why Do you need use RCD? ...
This a ESQL for same RCD work .
MQInput-->Compute--->MQOutput
********XML----->CWF**********
Code:

DECLARE inCCSID INT InputProperties.CodedCharSetId;                     
DECLARE inEncoding INT InputProperties.Encoding; 
DECLARE options INTEGER BITOR(FolderBitStream,  ValidateNone);                     
DECLARE inBitStream BLOB ASBITSTREAM(InputRoot.XMLNSC, inEncoding, inCCSID);
CREATE LASTCHILD OF OutputRoot DOMAIN('MRM')                           
       PARSE(inBitStream, inEncoding, inCCSID, 'MessageSet1',         
             'Message1', 'CWF1', options);

_________________
Oscar Vásquez Flores
Back to top
View user's profile Send private message Send e-mail
sarathmattam
PostPosted: Thu Nov 12, 2009 2:30 pm    Post subject: Avoiding RCD Node Reply with quote

Voyager

Joined: 05 Sep 2008
Posts: 94

Dear All,

I read the above post. Currently i have a similar requirement.

I have 2 flows . FlowA is a publication msg flow which is used for publishing the messages to multiple subscribers. FlowB which takes this input , processes and form the output.

Now i am facing problem at the starting of FlowB. I have a message set in FlowB which i configured in the MQInout node. But when i configure the message set in the MQinput node , the parsing fails.

Then i did a work around by using RCD node and the parsing is success ful. Next to the RCD node , i have a compute node, where i will check the value of two fileds . If they satisfy i will pass it to the next node. Here i want to avoid the use of RCD node. I have tried the method mentioned in the above post. But it fails. So my queries are

1. Why parsing fails wen i configure the message set in MQInput where as the same works perfectly with an RCD?
2. How can i do a BLOB to MRM conversion using a combination of ASBITSTREAM & CREATE ?

Thanks a lot in advance

Regards,
sarath
Back to top
View user's profile Send private message
WMBDEV1
PostPosted: Fri Nov 13, 2009 1:21 am    Post subject: Re: Avoiding RCD Node Reply with quote

Sentinel

Joined: 05 Mar 2009
Posts: 888
Location: UK

Quick thoughts....


sarathmattam wrote:
Dear All,

Then i did a work around by using RCD node and the parsing is success ful. Next to the RCD node , i have a compute node, where i will check the value of two fileds.


This may be better implemented as a filter node but this is more of an aside.

Quote:

1. Why parsing fails wen i configure the message set in MQInput where as the same works perfectly with an RCD?


I give in. But if you could share the errors you get that may help.

Quote:

2. How can i do a BLOB to MRM conversion using a combination of ASBITSTREAM & CREATE ?


As above. The snippet provided should work.

Again if you share errors / experiences we may be able to help. Previously, when using the MRM domain my common pitfall has been around using an incorrect message value (typo) which resulted in an empty message being propagated.
Back to top
View user's profile Send private message
sarathmattam
PostPosted: Fri Nov 13, 2009 5:25 am    Post subject: RCD Node Reply with quote

Voyager

Joined: 05 Sep 2008
Posts: 94

I will share the errors for sure ..

As you mentioned in the last line , am also getting an empty out while using a combination of ASBITSTREAM and CREATE with PARSE .

Can you tell me the reason ??

Thanks alot

Regards,
Sarath
Back to top
View user's profile Send private message
smdavies99
PostPosted: Fri Nov 13, 2009 5:41 am    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

As has been mentioned many times before in relation to this type of conversion, you need to take a UserTrace of the message as it passed through your flow. This will really help you discover what the problem is. Don't use the debugger!!!!!!

Posting the relevant section of the trace output here will help us to help you with this problem.
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
sarathmattam
PostPosted: Fri Nov 13, 2009 5:49 am    Post subject: Reply with quote

Voyager

Joined: 05 Sep 2008
Posts: 94

Initially i was getting "Invalid wire format" error.

The i tried setting the Domain,MessageSet,Type & format. Nw am getting empty string in the output. No errors .. Code is as given below

DECLARE parseOptions INTEGER BITOR(FolderBitStream, ValidateNone);
DECLARE subBitStream BLOB
CAST(ASBITSTREAM(InputRoot.BLOB.BLOB
OPTIONS parseOptions
SET 'GATEWAY'
TYPE 'FullMsg'
FORMAT 'Text1') AS BLOB);
SET OutputRoot.Properties = InputRoot.Properties;
SET OutputRoot.Properties.MessageDomain = 'MRM';
SET OutputRoot.Properties.MessageFormat = 'Text1';
SET OutputRoot.Properties.MessageSet = 'GATEWAY';
SET OutputRoot.Properties.MessageType = 'FullMsg';
CREATE LASTCHILD OF OutputRoot DOMAIN('MRM');
CREATE LASTCHILD OF OutputRoot.MRM
PARSE ( subBitStream
OPTIONS parseOptions
SET 'GATEWAY'
TYPE 'FullMsg'
FORMAT 'Text1');

Currently am just trying to get the output .


Regards,
Sarath
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Setting the RCD node properties at runtime
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.