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 » question for the ESQL experts

Post new topic  Reply to topic
 question for the ESQL experts « View previous topic :: View next topic » 
Author Message
pfaulkner
PostPosted: Wed Dec 18, 2002 12:26 pm    Post subject: question for the ESQL experts Reply with quote

Master

Joined: 18 Mar 2002
Posts: 241
Location: Colorado, USA

I have an XML message that needs to be converted to COBOL which contains an OCCURS DEPENDING ON clause.

The parsed XML looks like this..

(0x1000010)XML = (
(0x1000000)TESTXML = (
(0x2000000) = '
'
(0x1000000)LINE_ITEMS_COUNT = (
(0x2000000) = '02'
)
(0x2000000) = '
'
(0x1000000)LINE_ITEMS = (
(0x2000000) = '
'
(0x1000000)DESC = (
(0x2000000) = 'AB'
)
(0x2000000) = '
'
)
(0x2000000) = '
'
(0x1000000)LINE_ITEMS = (
(0x2000000) = '
'
(0x1000000)DESC = (
(0x2000000) = 'CD'
)
(0x2000000) = '
'
)
(0x2000000) = '
'
)
)

As you can see there are two LINE_ITEMS

After translating to COBOL the message looks like this

(0x1000008)MRM = (
(0x3000000)LINE_ITEMS_COUNT = '02'
(0x1000000)LINE_ITEMS = (
(0x3000000)DESC = 'AB'
)
(0x1000000)LINE_ITEMS = (
(0x3000000)DESC = 'CD'
)
)

Everything looks good.

Now I need to be able to check the length on my new message so I have another compute node with a:
SET newDataLength = LENGTH(BITSTREAM(InputBody));
command

This fails with the following error -

2002-12-18 13:44:54.894771 4632 UserTrace BIP2538I: Node 'EMT_REQUEST.EMT_PARSE_SYSONE-FOFNISMC_MSG_XML_TO_C1.EMT_COMBINE_HEADER_AND_MSG_DATA1.Combine Header and MsgData': Evaluating expression 'BITSTREAM(InputBody)' at (21, 2.
The expression being evaluated was 'BITSTREAM(InputBody)'.
No user action required.
2002-12-18 13:44:54.897205 4632 Error BIP5286E: Message Translation Interface Writing Errors have occurred.
Errors have occurred during writing.
Review further error messages for an indication to the cause of the errors.
2002-12-18 13:44:54.901996 4632 Error BIP2628E: Exception condition detected on input node 'EMT_REQUEST.RG.T.CITMCSAC.OS07.SI.RGL3'.
The input node 'EMT_REQUEST.RG.T.CITMCSAC.OS07.SI.RGL3' detected an error whilst processing a message. The message flow has been rolled-back and, if the message was being processed in a unit of work, it will remain on the input queue to be processed again. Following messages will indicate the cause of this exception.
Check the error messages which follow to determine why the exception was generated, and take action as described by those messages.
2002-12-18 13:44:54.902038 4632 ImbComputeNode::evaluate
2002-12-18 13:44:54.902103 4632 MtiImbParser::subSyncWithDictionary , DP3PD5007O001, LINE_ITEMS
2002-12-18 13:44:54.903072 4632 UserTrace BIP2231E: Error detected whilst processing a message 'EMT_REQUEST.RG.T.CITMCSAC.OS07.SI.RGL3'.
The message broker detected an error whilst processing a message in node 'EMT_REQUEST.RG.T.CITMCSAC.OS07.SI.RGL3'. The message has been augmented with an exception list and has been propagated to the node's failure terminal for further processing.
See the following messages for details of the error.
2002-12-18 13:44:54.903118 4632 ImbComputeNode::evaluate
2002-12-18 13:44:54.903137 4632 MtiImbParser::subSyncWithDictionary , DP3PD5007O001, LINE_ITEMS


If my input only has 1 LINE_ITEM everything works fine????

Can someone please explain why the BITSTREAM(InputBody) would fail?

I really appreciate the help, this one has been driving me crazy for days.
Back to top
View user's profile Send private message AIM Address
warrenpage
PostPosted: Wed Dec 18, 2002 10:34 pm    Post subject: Hmm Reply with quote

Acolyte

Joined: 19 Feb 2002
Posts: 56
Location: Australia

Could depend on which CSD you are using. Under CSD3 you should use ASBITSTREAM instead of BITSTREAM.

Under CSD2 or lower, try moving it to OutputRoot, then doing the BITSTREAM on OutputRoot.MRM (instead of InputBody)

ALSO, be aware that internally COBOL OCCURS DEPENDING does not change the length of the record size COBOL still allocates the full OCCURS size. The only works when the OCCURS DEPENDING is at the end of the record defn and you cut the record short using file length (which it sounds like you might be doing). Of course this is COBOL i am describing not how WMQI handles it - so again this may not affect you.
Back to top
View user's profile Send private message Yahoo Messenger MSN Messenger
Segs
PostPosted: Thu Dec 19, 2002 2:51 am    Post subject: Reply with quote

Voyager

Joined: 04 Oct 2001
Posts: 78
Location: Zurich Financial Services

I don't understand why you are trying to change the length of the message can you please explain what you are trying to do.

Thanks
Back to top
View user's profile Send private message Send e-mail
pfaulkner
PostPosted: Thu Dec 19, 2002 7:56 am    Post subject: Reply with quote

Master

Joined: 18 Mar 2002
Posts: 241
Location: Colorado, USA

According to the ESQL Reference you can only use BITSTREAM on the input.

Segs, my message is two parts. The first partis a header that contains info about the message itself, including length and therefore when the message is translated the length changes and the length field of the header needs to change to reflect this.
Back to top
View user's profile Send private message AIM Address
pfaulkner
PostPosted: Thu Dec 19, 2002 8:35 am    Post subject: Reply with quote

Master

Joined: 18 Mar 2002
Posts: 241
Location: Colorado, USA

I found something in the manuals that implied for a Variable length table I needed to add a CWF (which I already had) and then:
1. change the CONNECTION tab Repeat field to YES
2. change the CWF tab Repeat Count Tab to 'Value of'
3. chaneg the CWF tab Repeat Count Value of to the name of the field that contains my number of occurs.

This all made sense so I did all this and now I get a new error...

2002-12-18 16:31:05.216089 3611 UserTrace BIP2538I: Node 'EMT_REQUEST.EMT_PARSE_SYSONE-FOFNISMC_MSG_XML_TO_C1.EMT_COMBINE_HEADER_AND_MSG_DATA1.Combine Header and MsgData': Evaluating expression 'BITSTREAM(InputBody)' at (21, 2.
The expression being evaluated was 'BITSTREAM(InputBody)'.
No user action required.
2002-12-18 16:31:05.219266 3611 Error BIP5167E: Error with Custom Wire Format: message set 'DP3PD5007O001'; message '100035'; parent element ''; current element '{5}'; function name 'CWFWorker::write'; error code '0'.
Custom Wire Format General Error.
Record the full details provided with this message and contact your IBM support center.
2002-12-18 16:31:05.220607 3611 Error BIP5286E: Message Translation Interface Writing Errors have occurred.
Errors have occurred during writing.
Review further error messages for an indication to the cause of the errors.
2002-12-18 16:31:05.225614 3611 Error BIP2628E: Exception condition detected on input node 'EMT_REQUEST.RG.T.CITMCSAC.OS07.SI.RGL3'.
The input node 'EMT_REQUEST.RG.T.CITMCSAC.OS07.SI.RGL3' detected an error whilst processing a message. The message flow has been rolled-back and, if the message was being processed in a unit of work, it will remain on the input queue to be processed again. Following messages will indicate the cause of this exception.
Check the error messages which follow to determine why the exception was generated, and take action as described by those messages.
2002-12-18 16:31:05.225659 3611 ImbComputeNode::evaluate
2002-12-18 16:31:05.225678 3611 MtiImbParser::refreshBitStreamFromElements - 4 par , ERROR: PWFDataImpl: incorrect logical type.
2002-12-18 16:31:05.226685 3611 UserTrace BIP2231E: Error detected whilst processing a message 'EMT_REQUEST.RG.T.CITMCSAC.OS07.SI.RGL3'.
The message broker detected an error whilst processing a message in node 'EMT_REQUEST.RG.T.CITMCSAC.OS07.SI.RGL3'. The message has been augmented with an exception list and has been propagated to the node's failure terminal for further processing.
See the following messages for details of the error.



So what does incorrect logical type mean????
Back to top
View user's profile Send private message AIM Address
pfaulkner
PostPosted: Thu Dec 19, 2002 1:58 pm    Post subject: Reply with quote

Master

Joined: 18 Mar 2002
Posts: 241
Location: Colorado, USA

Solution.

The problem turned out to be a combination of problems. Once I added the addition CWF (mentioned in previous post above) I also needed to cast the occurs depending on index to integer prior to the BITSTREAM command. Alternatively, I could also create an XML MRM and not worry about the cast.
Back to top
View user's profile Send private message AIM Address
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » question for the ESQL experts
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.