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 » TDS problem

Post new topic  Reply to topic
 TDS problem « View previous topic :: View next topic » 
Author Message
Ward
PostPosted: Fri Mar 23, 2007 11:01 am    Post subject: TDS problem Reply with quote

Voyager

Joined: 27 Jun 2001
Posts: 98
Location: Europe

Hi,

I'm having a complex type with Delimiter = Group Terminator = ;
Only one repeating element in this complex type (Fieldx = a string).
This complex type in itself is encapsulated in another complex type with Delimiter = <CR><LF> and no Group Terminator.
In this complex type again one repeating element (Row_out = multiple Fieldx elements)

The idea is to output multiple rows with each row containing a series of Fieldx fields separated by a semi-column.
Both delimiters have Suppress Absent Element Delimiters = End of Type.

In the trace I can see the following structure:
Code:

        (0x01000021):MRM        = (
              (0x01000000):Row_out = (
              (0x03000000):Fieldx = '01012001'
              (0x03000000):Fieldx = 'SUB(UNK)'
              (0x03000000):Fieldx = 'UNK'
               ...
              (0x03000000):Fieldx = 'H'
              (0x03000000):Fieldx = '4'
              (0x03000000):Fieldx = ''
              (0x03000000):Fieldx = 'AMO 01'
              (0x03000000):Fieldx = ''
       )


I would therefore expect to see this row end with:
Code:

;H;4;;AMO 01;;<CR><LF>


Or at least that's the outcome I would like to see...

Instead I get the following:
Code:

;H;4;;AMO 01;;<CR><LF>;


And I have absolutely no clue where that last ; comes from.

In an attempt to better understand things, I changed the Group Terminater of the Complex type around Fieldx from ; to =
This time I got the following result:
Code:

;H;4;;AMO 01=<CR><LF>=


This got me even more confused...

Can anyone shed a light ?

Ward.
PS: using MBv5 CSD 4 on AIX
Back to top
View user's profile Send private message Send e-mail Visit poster's website
elvis_gn
PostPosted: Fri Mar 23, 2007 11:22 am    Post subject: Reply with quote

Padawan

Joined: 08 Oct 2004
Posts: 1905
Location: Dubai

Hi Ward,

Are you sure you do not have an extra 'Row_out' with no child elements ?

When you changed the Terminator to '=' I think the output you got should have been
Code:
;H;4;;AMO 01;=<CR><LF>=


I think you should not be using the terminator at all, then you would get
Code:
;H;4;;AMO 01;<CR><LF>


Regards.
Back to top
View user's profile Send private message Send e-mail
kimbert
PostPosted: Fri Mar 23, 2007 12:43 pm    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

This is the best problem description I have seen for many a long day. Thank you!

Not sure whether it was a typo on your part, but if fieldx is repeating, I would expect you to be setting the Repeating Element Delimiter to ; ( not the ordinary Delimiter). You do not need to set the Group Terminator to ; unless you want the final field on each line to end with a ;.

In other words, I'm agreeing with Elvis here. Remove the Group Terminator and check that you don't have an extra instance of the inner element in the message tree.
Back to top
View user's profile Send private message
Ward
PostPosted: Sat Mar 24, 2007 2:20 am    Post subject: Reply with quote

Voyager

Joined: 27 Jun 2001
Posts: 98
Location: Europe

Elvis, Kimbert,

thanks for the replies...

1) am I sure not having an extra "Row_out" with no child elements ?

Yes and no:
Yes, I'm sure it's not there in the Root tree that I saw in the trace node just before writing to the queue.
No, I'm not sure the parser doesn't want to add one... changing the Suppress Absent Element Delimiters to Never in the complex type around Fieldx resulted in a load more semi-colums being output... like an extra Row_out with all empty Fieldx elements... but where does it come from ????

2) When you changed the Terminater to "=" the output should have been....

This would indeed have been a bit more consistant, but I tried it multiple times changing the Terminator back and forward... the outcome was consistantly like in my first message... Understand who can...

3) Not using the terminator at all

This gave me the following result:
Code:

;H;4;;AMO 01

Unfortunately we do want both semi-colomns and the <CR><LF> after this...

4) settingth Repeating Element Delimiter, not the ordinary delimiter...

For both types I have defined the Repeating Element Delimiter and the ordinary delimiter (with the same value, although I found out when using different values the Repeating Element Delimiter seems to win). The ordinary delimiter I have to fill in as I specify All Elements Delimited.

Cheers,

Ward.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

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