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 » XML -> MRM question

Post new topic  Reply to topic Goto page 1, 2  Next
 XML -> MRM question « View previous topic :: View next topic » 
Author Message
Kraven12
PostPosted: Wed Aug 14, 2002 7:13 am    Post subject: XML -> MRM question Reply with quote

Novice

Joined: 21 Oct 2001
Posts: 21

Quick question. I am sending an XML message into a flow where it is traced to a file, sent to a compute node where it is transformed into an MRM definition, sent to another Trace Node and then sent to an Output Node.

The second Trace Node is printing ${Root} and I get the full MRM message as expected. When the message tries to get written out by the Output Node it fails with following error: CWF Logical Tree - Message Definition Mismatch.

I am confused as to why the message properly gets parsed for the Trace Node but fails on the parse for the Output Node.

Has anyone else encountered this behavior?

Thanks for your help.
Back to top
View user's profile Send private message
kirani
PostPosted: Wed Aug 14, 2002 8:10 am    Post subject: Reply with quote

Jedi Knight

Joined: 05 Sep 2001
Posts: 3779
Location: Torrance, CA, USA

Yes, Many times!

The Trace node does not validate message against RTD completely. When message reaches the output queue, MRM message Writer will construct the outbound message that conform to the message model (RTD). The node will throw an exception if there is mismatch between message definition and RTD.
_________________
Kiran


IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries

Back to top
View user's profile Send private message Visit poster's website
Kraven12
PostPosted: Wed Aug 14, 2002 8:22 am    Post subject: Reply with quote

Novice

Joined: 21 Oct 2001
Posts: 21

OK - thanks.

I have studied this for hours now and I just can't seem to find where the data is different from the definition. Probably right in front of me though. Back to the drawing board.
Back to top
View user's profile Send private message
kirani
PostPosted: Wed Aug 14, 2002 9:14 am    Post subject: Reply with quote

Jedi Knight

Joined: 05 Sep 2001
Posts: 3779
Location: Torrance, CA, USA

If you could post your ExceptionList here .. we can see what's going wrong ..
_________________
Kiran


IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries

Back to top
View user's profile Send private message Visit poster's website
Kraven12
PostPosted: Wed Aug 14, 2002 11:42 am    Post subject: Reply with quote

Novice

Joined: 21 Oct 2001
Posts: 21

Here is my ExceptionList:

(
(0x1000000)RecoverableException = (
(0x3000000)File = '/build/S210_P/src/DataFlowEngine/ImbDataFlowNode.cpp'
(0x3000000)Line = 536
(0x3000000)Function = 'ImbDataFlowNode::createExceptionList'
(0x3000000)Type = 'ComIbmMQOutputNode'
(0x3000000)Name = 'ff5a62a4-ef00-0000-0080-aeabb8e2f37f'
(0x3000000)Label = 'XML_TEST.DK.OUTPUT'
(0x3000000)Text = 'Node throwing exception'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 2230
(0x1000000)ParserException = (
(0x3000000)File = '/build/S210_P/src/MTI/MTIforBroker/MtiImbParser2/MtiImbParser.cpp'
(0x3000000)Line = 1187
(0x3000000)Function = 'MtiImbParser::refreshBitStreamFromElements - 9 par'
(0x3000000)Type = 'ComIbmMQInputNode'
(0x3000000)Name = '372362a4-ef00-0000-0080-aeabb8e2f37f'
(0x3000000)Label = 'XML_TEST.DK.INPUT'
(0x3000000)Text = 'ImbRecoverableException caught from worker when attempting to write out the bitstream.'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 5286
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'DQDFPA8076001'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'CWF'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'm_CIF_NOTIFICATION_MSG'
)
(0x1000000)ParserException = (
(0x3000000)File = '/build/S210_P/src/cpi/pwf/cwf/cwfworker.cpp'
(0x3000000)Line = 304
(0x3000000)Function = 'CWFWorker::write'
(0x3000000)Type = ''
(0x3000000)Name = ''
(0x3000000)Label = ''
(0x3000000)Text = 'CWF General Error'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 5167
(0x1000000)Insert = (
(0x3000000)Type = 2
(0x3000000)Text = '0'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'CWFWorker::write'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'DQDFPA8076001'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'm_CIF_NOTIFICATION_MSG'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = '--'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = '--'
)
(0x1000000)ParserException = (
(0x3000000)File = '/build/S210_P/src/cpi/pwf/cwf/cwfcontext.cpp'
(0x3000000)Line = 342
(0x3000000)Function = 'CContext::CheckDefaultValue'
(0x3000000)Type = ''
(0x3000000)Name = ''
(0x3000000)Label = ''
(0x3000000)Text = 'CWF Logical Tree - Message Definition Mismatch'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 5344
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'DQDFPA8076001'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'm_CIF_NOTIFICATION_MSG'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'TRANSACTION_NAME'
)
)
(0x1000000)ParserException = (
(0x3000000)File = '/build/S210_P/src/cpi/pwf/cwf/cwfcontext.cpp'
(0x3000000)Line = 342
(0x3000000)Function = 'CContext::CheckDefaultValue'
(0x3000000)Type = ''
(0x3000000)Name = ''
(0x3000000)Label = ''
(0x3000000)Text = 'CWF Logical Tree - Message Definition Mismatch'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 5344
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'DQDFPA8076001'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'm_CIF_NOTIFICATION_MSG'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'TRANSACTION_NAME'
)
)
)
)
)
)

Thanks a lot.
Back to top
View user's profile Send private message
kirani
PostPosted: Wed Aug 14, 2002 12:22 pm    Post subject: Reply with quote

Jedi Knight

Joined: 05 Sep 2001
Posts: 3779
Location: Torrance, CA, USA

Looks like 'TRANSACTION_NAME' element does not have a correct value.
Please check you ESQL code and see if you are assigning value to this element properly. If you are assigning this value from some field in the input message, make sure the field exist and has valid value.
What value does your trace output shows for this element?
_________________
Kiran


IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries

Back to top
View user's profile Send private message Visit poster's website
Kraven12
PostPosted: Thu Aug 15, 2002 5:15 am    Post subject: Reply with quote

Novice

Joined: 21 Oct 2001
Posts: 21

In the Trace Node it shows this field as having the correct value. This is the first element in the message which, to me, makes this even stranger. It is a simple 20 byte string.

Any thoughts?

Thanks.
Back to top
View user's profile Send private message
kirani
PostPosted: Thu Aug 15, 2002 8:08 am    Post subject: Reply with quote

Jedi Knight

Joined: 05 Sep 2001
Posts: 3779
Location: Torrance, CA, USA

Could you please check these...
1. "Copy Message Headers only" is selected in the transformation compute node.
2. You compute node has ..
SET OutputRoot.Properties.MessageFormat = 'CWF';
SET OutputRoot.Properties.MessageType = 'm_xxxx'; (message identifier)
SET OutputRoot.Properties.MessageSet = 'Dxxxx'; (message set identifier)
3. In Advanced tab of Compute node, "Message" is part of Compute mode.
_________________
Kiran


IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries

Back to top
View user's profile Send private message Visit poster's website
Kraven12
PostPosted: Thu Aug 15, 2002 8:12 am    Post subject: Reply with quote

Novice

Joined: 21 Oct 2001
Posts: 21

I checked the things you mention and they are all set as you suggest (although in a different order).

Thanks.
Back to top
View user's profile Send private message
sgopal
PostPosted: Thu Aug 15, 2002 10:32 am    Post subject: Reply with quote

Acolyte

Joined: 30 Jul 2002
Posts: 63

Can you try do a complete deploy of the BROKER (not the execution group alone) once and again test the message flow.
I suspect you have modified the MRM and thats not reflected on the broker yet.
Back to top
View user's profile Send private message
Kraven12
PostPosted: Mon Aug 19, 2002 11:01 am    Post subject: Reply with quote

Novice

Joined: 21 Oct 2001
Posts: 21

sgopal - I did a full deploy but there is no change in behavior. It was a good thought but apparently not the case (I was hoping).

gausspq - As I stated above, I have looked at the traces and all values are being reported as expected.

Thanks.
Back to top
View user's profile Send private message
kirani
PostPosted: Mon Aug 19, 2002 2:51 pm    Post subject: Reply with quote

Jedi Knight

Joined: 05 Sep 2001
Posts: 3779
Location: Torrance, CA, USA

Is it possible to post your Compute node ESQL code here?
Do you have the same value for Element Names and Element Identifiers?
You will get an error if you are using Element names in your compute node ESQL instead of Element Identifiers.
Please check ... you have assigned correct values for your Mmessage Set and Message Identifiers in your ESQL code.
_________________
Kiran


IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries

Back to top
View user's profile Send private message Visit poster's website
muralihegde
PostPosted: Wed Aug 21, 2002 12:44 am    Post subject: Reply with quote

Centurion

Joined: 30 Apr 2002
Posts: 108

Hi,
The order in which you form the output MRM message also matters. For e.g if the message structure defn has the following order.

Msg1
{ 1. TrnName (char 20 )
2. TrnNumber (Integer)
3. Address (char 40)
}

Then if you form the output message in the wrong order i.e,

SET OutputRoot.MRM.TrnNumber = InputRoot.XML.TrnNumber;
SET OutputRoot.MRM.TrnName = InputRoot.XML.TrnName;
SET OutputRoot.MRM.Address = InputRoot.XML.Address;

Then this will give exception while outputting to the queue, since the druing bit stream allocation, it expects first 20 bytes to be of character, while it formed first filed as Integer as per the above ESQL.

So try to code your esql in the same order as the actual message is defined.

-Hope this solves your problem.

-Murali
Back to top
View user's profile Send private message Yahoo Messenger
mariop
PostPosted: Mon Feb 09, 2004 2:16 pm    Post subject: Same problem Reply with quote

Newbie

Joined: 09 Feb 2004
Posts: 1

Kraven12:

Were you able to solve this problem and how ?

Kirani, muralihegde:

I tried what you mentioned, but it still does not work. Do you have any more suggestions.
Back to top
View user's profile Send private message
kimbert
PostPosted: Tue Feb 10, 2004 1:50 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Quote:
its quite possible that the XML element that you are refering to might not exist due to which NULL value might be assigned to ur MRM element.so it would be better to check if you are getting the right values as Input from ur XML.i would suggest looking at the MRM tree after the compute node and see if the elements in the MRM are assigned correct values.


I'm absolutely certain that this is happening because one of the fields in the output message does not have a value. The CWF bitstream worker reports this error when it needs a value but cannot find one. I strongly suggest putting a trace node just before the output node, as suggested by gaussspg.
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 » XML -> MRM question
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.