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 » How can one change the InputRoot."BLOB"."BLOB

Post new topic  Reply to topic
 How can one change the InputRoot."BLOB"."BLOB « View previous topic :: View next topic » 
Author Message
adityamittal_27
PostPosted: Wed Dec 14, 2005 10:24 pm    Post subject: How can one change the InputRoot."BLOB"."BLOB Reply with quote

Newbie

Joined: 14 Dec 2005
Posts: 2
Location: Noida, India

Hi,

I need to change the sequence of characters that are coming in the incoming message. The message is coming as BLOB. When i try changing and setting the InputRoot."BLOB"."BLOB" it throws an error stating "Input correlation name InputRoot cannot be changed." Can some1 plz help me figure out how i can change the InputRoot's BLOB area.

Cheers.
Aditya.
Back to top
View user's profile Send private message Yahoo Messenger
elvis_gn
PostPosted: Wed Dec 14, 2005 10:45 pm    Post subject: Reply with quote

Padawan

Joined: 08 Oct 2004
Posts: 1905
Location: Dubai

Hi adityamittal_27,

Well it is doing what it is supposed to

Why do u want to change your Input message, shouldn't you want to change the Output message instead

Set the InputRoot to the OutputRoot and do what you are trying to do.

I hope you got what I'm trying to tell you.

If you notice the CopyEntireMessage method, you do a SET InputRoot = OutputRoot;

And then the OutputRoot is sent out of the node, not the InputRoot.

Regards.
Back to top
View user's profile Send private message Send e-mail
adityamittal_27
PostPosted: Wed Dec 14, 2005 11:12 pm    Post subject: Reply with quote

Newbie

Joined: 14 Dec 2005
Posts: 2
Location: Noida, India

Hi elvis_gn,

the problem is that my message gets mapped to a message set which is expecting the data in a particular format. The input message is not in that format and that is the reason why i want to change my incoming message.
Should i introduce a compute node before it is getting mapped to the message set and apply the transformation there or can it be done without introducing another compute node???

Regards.
Back to top
View user's profile Send private message Yahoo Messenger
elvis_gn
PostPosted: Wed Dec 14, 2005 11:40 pm    Post subject: Reply with quote

Padawan

Joined: 08 Oct 2004
Posts: 1905
Location: Dubai

Hi adityamittal_27,

First, THERE IS NOTHING LIKE CHANGING THE INPUTROOT AND FORWARDING IT.

A compute node can have two Message Sets linked to it. The message coming in will conform to one type(your Input) and the one going out can conform to another(The output set u want to map to).

Forget what your input message is, we are least bothered about it. Put an MQInput Node and let the message come into the flow, to the compute node. In the Input node specify the INPUT Message set, if you have one. If its BLOB, set the properties for BLOB.

In the only one compute node which u need, SET the InputRoot to OutputRoot and make whatever changes u want, IN THE OUTPUTROOT ONLY.

Code:

SET OutputRoot.Properties.MessageDomain = '<Domain format of Output Message>';
      SET OutputRoot.Properties.MessageSet = '<Message Se id of Output Message>';
      SET OutputRoot.Properties.MessageType = '<Message Definition name of Output Message>';
      SET OutputRoot.Properties.MessageFormat = '<Wire Format of Output Message>';


Put the above code along with your code. This will tell the message going out of the compute to map to the Message set specified.

Sorry for asking, is this the first time you are using the Compute and Broker ?

Regards.
Back to top
View user's profile Send private message Send e-mail
Tibor
PostPosted: Thu Dec 15, 2005 9:16 am    Post subject: Reply with quote

Grand Master

Joined: 20 May 2001
Posts: 1033
Location: Hungary

elvis_gn,

Should place a ResetContentDescriptor node into the message flow for changing the message domain really . Setting the value of OutputRoot.Properties.MessageDomain is usable only as a preparing step before the RCD.

Tibor
Back to top
View user's profile Send private message
elvis_gn
PostPosted: Thu Dec 15, 2005 9:13 pm    Post subject: Reply with quote

Padawan

Joined: 08 Oct 2004
Posts: 1905
Location: Dubai

Hi Tibor,

If we use a RCD u can change the format, I agree.

But if the message set has a totally different structure, is it enough to use the RCD, won't we have to code for it.

And if I set the properties to the format required, code in ESQL and provide Content validation at the compute itself, would I then even need a RCD ?

And as the original post was about

Quote:
"Input correlation name InputRoot cannot be changed."


it appears that adityamittal_27 is trying to change the message structure, which is not possible in the RCD.

Please correct my understanding if i'm wrong.

Regards.
Back to top
View user's profile Send private message Send e-mail
RAJESHRAMAKRISHNAN
PostPosted: Sun Dec 18, 2005 5:02 pm    Post subject: Reply with quote

Voyager

Joined: 01 May 2004
Posts: 96

Hi adityamittal_27,

You can do without using RCD also. Something like this.
CREATE LASTCHILD OF OutputRoot DOMAIN 'MRM' PARSE(InputBody.BLOB, InputProperties.Encoding, InputProperties.CodedCharSetId,
'Message Set ID', 'Message Type', 'CWF1');
Back to top
View user's profile Send private message
Tibor
PostPosted: Mon Dec 19, 2005 1:25 am    Post subject: Reply with quote

Grand Master

Joined: 20 May 2001
Posts: 1033
Location: Hungary

RAJESHRAMAKRISHNAN wrote:
You can do without using RCD also. Something like this.
CREATE LASTCHILD OF OutputRoot DOMAIN 'MRM' PARSE(...);

Correct, because this code is contains the (re-)parsing ... like an RCD node.
elvis_gn wrote:
Please correct my understanding if i'm wrong.

I wrote about the behavior of the Root.Properties.MessageDomain variable. There was a topic here (in the mqseries.net), and the conclusion is the next: this variable shows the root domain type but can't change it.

Tibor
Back to top
View user's profile Send private message
elvis_gn
PostPosted: Mon Dec 19, 2005 1:46 am    Post subject: Reply with quote

Padawan

Joined: 08 Oct 2004
Posts: 1905
Location: Dubai

Hi Tibor,

One more clarification,

When I use CREATE LASTCHILD i'll end up creating another segment under OutputRoot, right ?

That segment will be named as MRM....will it look like the below

OutputRoot
|---Properties
|---MQMD
|---BLOB
|---MRM

What will be the output in this case ? Wont the original BLOB message also be outputted ?
Back to top
View user's profile Send private message Send e-mail
kspranava
PostPosted: Mon Dec 19, 2005 3:34 am    Post subject: Copy only header Reply with quote

Centurion

Joined: 27 Apr 2003
Posts: 124

Hi elvis_gn,

If you copy only headers, OutputRoot will have only MRM next to Properties and MQMD.

Thanks & regards,
Pranava.
Back to top
View user's profile Send private message
elvis_gn
PostPosted: Mon Dec 19, 2005 3:46 am    Post subject: Reply with quote

Padawan

Joined: 08 Oct 2004
Posts: 1905
Location: Dubai

Oh shucks

I get the idea, thanks guys.

Regards.
Back to top
View user's profile Send private message Send e-mail
kimbert
PostPosted: Mon Dec 19, 2005 4:13 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

I think adityamittal_27 deserves some answers...
Quote:
the problem is that my message gets mapped to a message set which is expecting the data in a particular format. The input message is not in that format and that is the reason why i want to change my incoming message.
I think I understand what you're saying. You want to tweak the message before you parse it, because you can't make the MRM parser do what you want.
Suggestion: Why not tell us what the problem is ( i.e. why do you want to edit the BLOB before you parse? ) . There are MRM experts on this forum who might be able to help you around the real problem.

Quote:
Should i introduce a compute node before it is getting mapped to the message set and apply the transformation there or can it be done without introducing another compute node?
If you need to tweak the message before it is parsed, that will have to be done in a Compute node. However, you can do both the tweaking and the parsing in a single Compute node, as explained by RAJESHRAMAKRISHNAN.
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 » How can one change the InputRoot."BLOB"."BLOB
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.