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 » Puzzling MRM Problem

Post new topic  Reply to topic
 Puzzling MRM Problem « View previous topic :: View next topic » 
Author Message
TonyD
PostPosted: Fri Jul 20, 2001 12:05 am    Post subject: Reply with quote

Knight

Joined: 15 May 2001
Posts: 540
Location: New Zealand

I have a message flow that consists of MQInput, Compute, Trace, MQOutput, connected in series. The input message is XML, the output is CWF. The input message includes nested repeating groups within repeating groups and there is quite extensive indexing in the ESQL to map the input to output correctly.

The Compute node appears to work correctly. The Trace immediately following shows:

(0x1000000)sgLOC02 = (
(0x3000000)ceLOC02SegCode = 'LOC'
(0x3000000)ceLocFuncCodeQual = '3a-'
(0x3000000)ceLocNameCode = '25-----------------------'
(0x3000000)ceCodeListIdentCode = '3--'
(0x3000000)ceCodeListRespAgncyCode = '3--'
(0x3000000)ceLocName = '256! '
(0x3000000)segDTM02count = 4
(0x1000000)sgDTM02 = (
(0x3000000)ceDTM02SegCode = 'DTM'
(0x3000000)ceDtTmPerFuncCodeQual = '3a-'
(0x3000000)ceDtTmPerVal = '35---------------------------------'
(0x3000000)ceDtTmPdFmtCode = '3--'
)
(0x1000000)sgDTM02 = (
(0x3000000)ceDTM02SegCode = 'DTM'
(0x3000000)ceDtTmPerFuncCodeQual = '3b-'
(0x3000000)ceDtTmPerVal = '35---------------------------------'
(0x3000000)ceDtTmPdFmtCode = '3--'
)
(0x1000000)sgDTM02 = (
(0x3000000)ceDTM02SegCode = 'DTM'
(0x3000000)ceDtTmPerFuncCodeQual = '3c-'
(0x3000000)ceDtTmPerVal = '35---------------------------------'
(0x3000000)ceDtTmPdFmtCode = '3--'
)
(0x1000000)sgDTM02 = (
(0x3000000)ceDTM02SegCode = 'DTM'
(0x3000000)ceDtTmPerFuncCodeQual = '3d-'
(0x3000000)ceDtTmPerVal = '35---------------------------------'
(0x3000000)ceDtTmPdFmtCode = '3--'
)
)
(0x1000000)sgLOC02 = (
(0x3000000)ceLOC02SegCode = 'LOC'
(0x3000000)ceLocFuncCodeQual = '3b-'
(0x3000000)ceLocNameCode = '25-----------------------'
(0x3000000)ceCodeListIdentCode = '3--'
(0x3000000)ceCodeListRespAgncyCode = '3--'
(0x3000000)ceLocName = '256! '
(0x3000000)segDTM02count = 4
(0x1000000)sgDTM02 = (
(0x3000000)ceDTM02SegCode = 'DTM'
(0x3000000)ceDtTmPerFuncCodeQual = '3e-'
(0x3000000)ceDtTmPerVal = '35---------------------------------'
(0x3000000)ceDtTmPdFmtCode = '3--'
)
(0x1000000)sgDTM02 = (
(0x3000000)ceDTM02SegCode = 'DTM'
(0x3000000)ceDtTmPerFuncCodeQual = '3f-'
(0x3000000)ceDtTmPerVal = '35---------------------------------'
(0x3000000)ceDtTmPdFmtCode = '3--'
)
(0x1000000)sgDTM02 = (
(0x3000000)ceDTM02SegCode = 'DTM'
(0x3000000)ceDtTmPerFuncCodeQual = '3g-'
(0x3000000)ceDtTmPerVal = '35---------------------------------'
(0x3000000)ceDtTmPdFmtCode = '3--'
)
(0x1000000)sgDTM02 = (
(0x3000000)ceDTM02SegCode = 'DTM'
(0x3000000)ceDtTmPerFuncCodeQual = '3h-'
(0x3000000)ceDtTmPerVal = '35---------------------------------'
(0x3000000)ceDtTmPdFmtCode = '3--'
)


My rather crude test data has the repeating sgLOC02 group (with the first field ceLocFuncCodeQual set respectively to 3a and 3b to differentiate them) and beneath each LOC02group there are four sgDTM02 groups (for these the first field ceDtTmPerFuncCodeQual is set to 3a, 3b, 3c, 3d etc. ...again to ensure that I really do map each individual segment!). The above result is correct...sgLOC02 '3a' contains sgDTM02 '3a', '3b, '3c', 3d' and sgLOC02 '3b' contains sgDTM02 '3f', '3g', '3h', '3i'.

The Trace node connects directly to the MQOutput node. However the data as written in the message does not match the above result. Below is a portion of an AMQSBCG dump:

000000F0: 4C4F 4333 612D 3235 2D2D 2D2D 2D2D 2D2D 'LOC3a-25--------'
00000100: 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D 2D33 '---------------3'
00000110: 2D2D 332D 2D32 3536 2120 2000 0000 0000 '--3--256! .....'
00000120: 0000 0000 0000 0000 0000 0000 0000 0000 '................'
00000130: 0000 0000 0000 0000 0000 0000 0000 0000 '................'
00000140: 0000 0000 0000 0000 0000 0000 0000 0000 '................'
00000150: 0000 0000 0000 0000 0000 0000 0000 0000 '................'
00000160: 0000 0000 0000 0000 0000 0000 0000 0000 '................'
00000170: 0000 0000 0000 0000 0000 0000 0000 0000 '................'
00000180: 0000 0000 0000 0000 0000 0000 0000 0000 '................'
00000190: 0000 0000 0000 0000 0000 0000 0000 0000 '................'
000001A0: 0000 0000 0000 0000 0000 0000 0000 0000 '................'
000001B0: 0000 0000 0000 0000 0000 0000 0000 0000 '................'
000001C0: 0000 0000 0000 0000 0000 0000 0000 0000 '................'
000001D0: 0000 0000 0000 0000 0000 0000 0000 0000 '................'
000001E0: 0000 0000 0000 0000 0000 0000 0000 0000 '................'
000001F0: 0000 0000 0000 0000 0000 0000 0000 0000 '................'
00000200: 0000 0000 0000 0000 0000 0000 0000 0000 '................'
00000210: 0000 0000 0000 0000 0444 544D 3361 2D33 '.........DTM3a-3'
00000220: 352D 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D '5---------------'
00000230: 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D '----------------'
00000240: 2D2D 332D 2D44 544D 3362 2D33 352D 2D2D '--3--DTM3b-35---'
00000250: 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D '----------------'

00000260: 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D 332D '--------------3-'
00000270: 2D44 544D 3363 2D33 352D 2D2D 2D2D 2D2D '-DTM3c-35-------'
00000280: 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D '----------------'
00000290: 2D2D 2D2D 2D2D 2D2D 2D2D 332D 2D44 544D '----------3--DTM'
000002A0: 3361 2D33 352D 2D2D 2D2D 2D2D 2D2D 2D2D '3a-35-----------'
000002B0: 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D '----------------'
000002C0: 2D2D 2D2D 2D2D 332D 2D4C 4F43 3362 2D32 '------3--LOC3b-2'
000002D0: 352D 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D '5---------------'

This shows that the sgDTM02 groups have been written out as '3a', '3b', 3c', '3a'. The problem is related to indexing. However I am not sure where to start looking as the Trace output (post Compute node) is apparently correct. I have also run the flow through the MQS 2.0.2 Debugger with a break point between the Trace and the MQOutput and verified in the debugger trace file that '3a', '3b', '3c', '3d' are shown.

This is very puzzling! Can anyone suggest what would be happening in the MQOutput node to cause this discrepancy. I have verified that the number of correctly written sgDTM02 items is related to the Repeat Count of the higher level sgLOC02 item, i.e. if I alter my test data from three (as in this test) sgLOC02 items to four I will get four correctly written sgDTM02 items in the queue. Does the MQOutput node attempt to rebuild the tree somehow...that is what seems to be happening.

I apologise for this rather convoluted explanation but if anyone has the patience to look at it I would be grateful for any hints.....I have spent hours trying to figure it out!

Thanks,
TonyD
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Puzzling MRM Problem
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.