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 » CWF Logical Tree - Message Definition Mismatch

Post new topic  Reply to topic
 CWF Logical Tree - Message Definition Mismatch « View previous topic :: View next topic » 
Author Message
akir
PostPosted: Fri Mar 28, 2008 9:35 am    Post subject: CWF Logical Tree - Message Definition Mismatch Reply with quote

Acolyte

Joined: 28 Jun 2007
Posts: 51

Hello All,
I have a Target message set generated from Cobol Copy Book.
To one of the type in the Message ,I have assigned N cardinality as (-1).
I have an XML message from Source which is mapped onto this Structure.
The output from Debug Perspective is same as Expected Result but the MQOutput Node is throwing the error "CWF Logical Tree - Message Definition Mismatch" .
In the ESQL Code before this MQOutput node, I have manually set sizes required for target Structure.(I think this should be taken care by Message Set itself...However Iam setting it manually....)
The entire Exception tree is shown below.

Thanks and regards,
Anand Kiran Sade.
Code:

ExceptionList
   RecoverableException
      File = F:\\build\\S600_P\\src\\DataFlowEngine\\ImbDataFlowNode.cpp
      Line = 616
      Function = ImbDataFlowNode::createExceptionList
      Type = ComIbmMQInputNode
      Name = com/mck/jnsnso/MF125_DTC_FEOP_JNSNSO_MF#FCMComposite_1_1
      Label = com.mck.jnsnso.MF125_DTC_FEOP_JNSNSO_MF.JNSNSO.DTC.OUTBOUND.SPEC.QA
      Catalog = BIPv600
      Severity = 3
      Number = 2230
      Text = Node throwing exception
      RecoverableException
         File = F:\\build\\S600_P\\src\\DataFlowEngine\\ImbMqOutputNode.cpp
         Line = 782
         Function = ImbMqOutputNode::evaluate
         Type = ComIbmMQOutputNode
         Name = com/mck/jnsnso/MF125_DTC_FEOP_JNSNSO_MF#FCMComposite_1_2
         Label = com.mck.jnsnso.MF125_DTC_FEOP_JNSNSO_MF.JNSNSO.FEOP.INBOUND.SPEC.QA
         Catalog = BIPv600
         Severity = 3
         Number = 2230
         Text = Caught exception and rethrowing
         ParserException
            File = F:\\build\\S600_P\\src\\MTI\\MTIforBroker\\MtiImbParser2\\MtiImbParser.cpp
            Line = 1711
            Function = MtiImbParser::refreshBitStreamFromElements - 9 par
            Type = ComIbmComputeNode
            Name = com/mck/jnsnso/MF125_DTC_FEOP_JNSNSO_MF#FCMComposite_1_3
            Label = com.mck.jnsnso.MF125_DTC_FEOP_JNSNSO_MF.Map_DTC_To_FEOP
            Catalog = BIPv600
            Severity = 3
            Number = 5286
            Text = ImbRecoverableException caught from worker when attempting to write out the bitstream.
            Insert
               Type = 5
               Text = BD127_FEOP_JNSNSO_MS
            Insert
               Type = 2
               Text = 1
            Insert
               Type = 5
               Text = CWF1
            Insert
               Type = 5
               Text = msg_TOFEOP
            ParserException
               File = F:\\build\\S600_P\\src\\cpi\\pwf\\cwf\\cwfworker.cpp
               Line = 415
               Function = CWFWorker::write
               Type =
               Name =
               Label =
               Catalog = BIPv600
               Severity = 3
               Number = 5167
               Text = CWF General Error
               Insert
                  Type = 2
                  Text = 0
               Insert
                  Type = 5
                  Text = CWFWorker::write
               Insert
                  Type = 5
                  Text = msg_TOFEOP
               ParserException
                  File = F:\\build\\S600_P\\src\\cpi\\pwf\\cwf\\cwfmessage.cpp
                  Line = 618
                  Function = CMessage::write
                  Type =
                  Name =
                  Label =
                  Catalog = BIPv600
                  Severity = 3
                  Number = 5350
                  Text = CWF Writing error
                  Insert
                     Type = 2
                     Text = 0
                  Insert
                     Type = 5
                     Text = CWFWorker::parseNext
                  Insert
                     Type = 5
                     Text = msg_TOFEOP
                  Insert
                     Type = 5
                     Text = /msg_TOFEOP/TRAILER
                  ParserException
                     File = F:\\build\\S600_P\\src\\cpi\\pwf\\cwf\\cwfcontext.cpp
                     Line = 323
                     Function = CContext::CheckDefaultValue
                     Type =
                     Name =
                     Label =
                     Catalog = BIPv600
                     Severity = 3
                     Number = 5344
                     Text = CWF Logical Tree - Message Definition Mismatch
                     Insert
                        Type = 5
                        Text = msg_TOFEOP
                     Insert
                        Type = 5
                        Text = 79^RECORDTYPE


Last edited by akir on Fri Mar 28, 2008 11:38 am; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail Yahoo Messenger
Jenney
PostPosted: Fri Mar 28, 2008 10:18 am    Post subject: Reply with quote

Voyager

Joined: 25 Apr 2007
Posts: 83
Location: Melbourne

Did you check what data you are getting in that field RECORDTYPE, does it match to your defined data type.
Back to top
View user's profile Send private message
wbi_telecom
PostPosted: Fri Mar 28, 2008 10:22 am    Post subject: Reply with quote

Disciple

Joined: 15 Feb 2006
Posts: 188
Location: Harrisburg, PA

Are you changing the message set that you have created from the copybook for cardinality? We generally do not change it. If the copybook has "occurs" for any field, its already taken care off while importing.
The error indicates that the message that you create does not match the message set. The error seems to be in 79^RECORDTYPE field in the msg_TOFEOP message. Put a trace node and see how your message looks like in the trace, compare it with the message set layout.

Cheers,
Back to top
View user's profile Send private message
akir
PostPosted: Fri Mar 28, 2008 11:21 am    Post subject: Reply with quote

Acolyte

Joined: 28 Jun 2007
Posts: 51

wbi_telecom wrote:
Are you changing the message set that you have created from the copybook for cardinality?

Yes that is what I am doing exactly.
How can I place cardinality for N times in Cobol Copy Book

I know that these are the ways to do that.

Code:
DETAILS OCCURS 1 TO 100 TIMES DEPENDING ON H1-DET-COUNT.


Code:
DETAILS OCCURS 1 TO 100 TIMES


But the requirement is that the output cardinality should depend on the cardinality of Input Structure.
For Ex:If I have 2 items in Input --> I should have 2 DETAILS in Output.
Back to top
View user's profile Send private message Send e-mail Yahoo Messenger
wbi_telecom
PostPosted: Fri Mar 28, 2008 11:32 am    Post subject: Reply with quote

Disciple

Joined: 15 Feb 2006
Posts: 188
Location: Harrisburg, PA

As I said you should not be changing anything in the message set after the copybook is imported successfully. When you map the XML message loop thru the number of instaces and map them to the respective copybook fields. CWF message is a fixed length message so if some field occurs 100 times...it will occur 100 times regardless of what you have in your incoming message.

Hope it clarifies....
Cheers,
Back to top
View user's profile Send private message
akir
PostPosted: Fri Mar 28, 2008 11:45 am    Post subject: Reply with quote

Acolyte

Joined: 28 Jun 2007
Posts: 51

wbi_telecom wrote:
if some field occurs 100 times...it will occur 100 times regardless of what you have in your incoming message.


I cannot for sure say that it occurs a fixed number of times.( like 100)

It depends on the cardinality of Input Structure.

For Ex:If I have 2 items in Input --> I should have 2 DETAILS in Output.

Thanks and Regards,
Anand Kiran Sade
Back to top
View user's profile Send private message Send e-mail Yahoo Messenger
wbi_telecom
PostPosted: Fri Mar 28, 2008 12:02 pm    Post subject: Reply with quote

Disciple

Joined: 15 Feb 2006
Posts: 188
Location: Harrisburg, PA

I know that your input cardinality will be anything between 1 and 100 but copybook works in a differnt way...
There is a difference between XML and CWF messages. CWF messages MUST have the number of bytes as present in the copybook . If you have 2 fields populated then the 98 remaining will have defaults in them.(we use spaces or zeros depending on datatype). Unless your message matches the copybook layout...you are going to get the CWF mismatch error.
Here is what I would do
1) Import the copybook with occurs in it
2)While importing set default values to null fields. (last screen in importer)
3)Map the number I have in the input to output fields
4) The broker will set the others to default


if you want to reduce the size of your output message, You might want to talk to mainframe guys and ask them about "Occurs depending". What this means is your cardinality on mainframe will be part of a field in the copybook which occurs before the repeating structure.....you need to have broker 6.0 or higher for this...

Cheers,
Back to top
View user's profile Send private message
kimbert
PostPosted: Fri Mar 28, 2008 12:30 pm    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Quote:
the requirement is that the output cardinality should depend on the cardinality of Input Structure.
For Ex:If I have 2 items in Input --> I should have 2 DETAILS in Output.
You have two options:
a) If the repeating structure is the final structure in the message, then you can set maxOccurs to -1 ( i.e. unbounded ).
b) Otherwise, you must use OCCURS DEPENDING ON, as wbi_telecom suggests.

This is just common sense, by the way. It is obviously impossible to parse a sequence of fixed-length fields without some way of knowing how many times each field occurs. a) uses the end of the bitstream to indicate the final occurence. b) uses a numeric field earlier in the message.
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 » CWF Logical Tree - Message Definition Mismatch
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.