Author |
Message
|
kimbert |
Posted: Thu Nov 24, 2005 6:17 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
the default value for all the elements is set to a space and each of the four fields has a length greater than zero. |
Tip: default values are not used by the message broker except when writing a fixed-length message.
Also, the lengths will be ignored when the message is written, because you have delimiters.
Neither of those points explains why your message is not getting transformed, though. I would suggest using the debugger or putting in trace nodes to see what's going on. I assume you've checked the system log to see whether you got any errors/exceptions? |
|
Back to top |
|
 |
Decky |
Posted: Thu Nov 24, 2005 9:03 am Post subject: |
|
|
Novice
Joined: 16 May 2005 Posts: 16 Location: London UK
|
Why aren't you using a mapping node or a compute node? I doubt only using an RCD would be enough. |
|
Back to top |
|
 |
kimbert |
Posted: Thu Nov 24, 2005 1:53 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Decky: There's no need for a mapping node if the input and output messages have exactly the same structure, and you are just changing the physical format.
ssk:
No mention of Message Type here...
Quote: |
The input node specifies: Input queue name, Domain = MRM; Message Set = Message Set ID of the imported XML Schema and Message Fromat = XML1. |
...was that a typo, or have you forgotten to set it?
You need to approach this step-by-step. I don't think your XML input message is getting parsed correctly. Put in a trace node immediately after the MQInput node, and trace ${Root}. Don't look for any other problems until you have sorted that out. |
|
Back to top |
|
 |
kimbert |
Posted: Fri Nov 25, 2005 4:40 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Take a user trace. You are getting an error in your flow which you are not trapping.
Quote: |
MRM
CHARACTER TO = <?xml vers
CHARACTER FROM = ion="1.0"?
CHARACTER HEADING =>[][] <note>And
CHARACTER TDS General Error |
|
|
Back to top |
|
 |
raja_no_1 |
Posted: Fri May 19, 2006 10:35 pm Post subject: |
|
|
 Apprentice
Joined: 05 Sep 2005 Posts: 34
|
I am trying out the example mentioned in this post. And facing a similar problem.
I have got a query regarding
Quote: |
2. I created a TDS message set in WMIMB with four fields (TO, FROM, HEADING and BODY). The Delimiter is set to a comma, the default value for all the elements is set to a space and each of the four fields has a length greater than zero. |
How do you set the length greater then zero? I am only able to specify the length as integer values like 1, 2 etc. But How do I set the length > 0? |
|
Back to top |
|
 |
wschutz |
Posted: Sat May 20, 2006 2:14 am Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
You don't. You only need to specify a length if you're using a FIXED LENGTH as the data element seperation. In the editor, if you specify TAGGED DELIMITED, then the length doesn't come into play (but, of course, you need to specify a delimiter instead). _________________ -wayne |
|
Back to top |
|
 |
raja_no_1 |
Posted: Sat May 20, 2006 7:26 am Post subject: |
|
|
 Apprentice
Joined: 05 Sep 2005 Posts: 34
|
I removed the length and tried again. But still the message is comming a a simple xml which I give to the input Queue.
My Input message is this:
Code: |
<note> <to>Joe</to> <from>Andy</from> <heading>Reminder</heading> <body>Dont </body> </note>
|
Here is the trace once the message has been parsed by after the input node. And looks good.
Code: |
-----------
(0x01000021):MRM = (
(0x0300000B):to = 'Joe'
(0x0300000B):from = 'Andy'
(0x0300000B):heading = 'Reminder'
(0x0300000B):body = 'Dont '
)
--------------- |
Here is the trace once the message has passed the RCD node:(This doesnt look good)
Code: |
)
(0x01000021):MRM = (
(0x0300000B):to = '<note> <to>Joe</to> <from>Andy</from> <heading>Reminder</heading> <body>Dont </body> </note>
'
)
)
|
Any help. |
|
Back to top |
|
 |
fjb_saper |
Posted: Sat May 20, 2006 11:56 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
raja If you don't want to do any mapping you need to set both wire formats on the same message set. The content redescriptor node will then do the change for you.
However please remember that CASE DOES MATTER.
So to from the xml input will not match to TO from the output without a mapping.
Enjoy !  _________________ MQ & Broker admin |
|
Back to top |
|
 |
raja_no_1 |
Posted: Sat May 20, 2006 8:56 pm Post subject: |
|
|
 Apprentice
Joined: 05 Sep 2005 Posts: 34
|
I have set both the message formats XML and TDS in the same message set. Also it doesn't seem to be a problem with the case as well. |
|
Back to top |
|
 |
kalyanMD |
Posted: Mon May 29, 2006 9:04 am Post subject: |
|
|
Novice
Joined: 03 Feb 2005 Posts: 14 Location: London UK
|
The ResetContentDescriptor node does not:
* Change the message content. It changes message properties to specify the way in which the bit stream is parsed next time that the parser is invoked.
* Convert the message from one format to another. For example, if the incoming message has a Message Format of XML and the outgoing Message Format is CWF, the ResetContentDescriptor node does not do any reformatting. It invokes the parser to recreate the bit stream of the incoming XML message, which retains the XML tags in the message. When the message is reparsed by a subsequent node, the XML tags are invalid and the reparse fails.
You may use Compute node for this parsing
Regards
Kalyan |
|
Back to top |
|
 |
|