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 General Error

Post new topic  Reply to topic
 TDS General Error « View previous topic :: View next topic » 
Author Message
raghubegur
PostPosted: Mon Aug 08, 2005 11:16 pm    Post subject: TDS General Error Reply with quote

Apprentice

Joined: 15 Jul 2002
Posts: 45

I have the following TDS Msg Set :

<xsd:complexType name="ApplicationData">
<xsd:annotation>
<xsd:appinfo source="WMQI_APPINFO">
<tdsStructRep
dataElementSeparation="AllElementsDelimited"
delimiter="~" groupIndicator="" groupTerminator="" messageSetDefaultRep="TDS1"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="Group_BU"/>
<xsd:element ref="Group_Id"/>
<xsd:element ref="Origin_Id"/>
<xsd:element ref="Control_Amt"/>
<xsd:element ref="Control_Currency"/>
<xsd:element ref="Control_Cnt"/>
<xsd:element ref="Group_Type"/>
<xsd:element ref="Grp_Post_Now"/>
<xsd:sequence>
<xsd:annotation>
<xsd:appinfo source="WMQI_APPINFO">
<tdsStructRep
dataElementSeparation="AllElementsDelimited"
delimiter="~" groupIndicator="["
groupTerminator="]"
messageSetDefaultRep="TDS1" suppressAbsentElementDelimiters="EndOfType"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:element maxOccurs="100" name="Pending_Item" type="Pending_Item"/>
</xsd:sequence>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Pending_Item">
<xsd:annotation>
<xsd:appinfo source="WMQI_APPINFO">
<tdsStructRep
dataElementSeparation="AllElementsDelimited"
delimiter="~" messageSetDefaultRep="TDS1"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="Cust_Id"/>
<xsd:element ref="Entry_Amt"/>
<xsd:element minOccurs="1" ref="Entry_Currency"/>
<xsd:element ref="Entry_Type"/>
<xsd:element ref="Entry_Reason"/>
<xsd:element ref="Item"/>
<xsd:sequence>
<xsd:annotation>
<xsd:appinfo source="WMQI_APPINFO">
<tdsStructRep
dataElementSeparation="AllElementsDelimited"
delimiter="~" groupIndicator="{"
groupTerminator="}" messageSetDefaultRep="TDS1"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:element maxOccurs="100" name="Pending_Tax" type="Pending_Tax">
<xsd:annotation>
<xsd:appinfo source="WMQI_APPINFO">
<tdsElemRep messageSetDefaultRep="TDS1" precision="-1"/>
<tdsInclRep messageSetDefaultRep="TDS1" repeatingElementDelimiter="~"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:sequence>
</xsd:complexType>


When my input message is ( the outer group occurs only once ) :
PACCRE~NA~PORT~~~Extra1~Extra2~Extra3~1234567890~TKMQL~NEXT~OBILL~2000~INR~1~B~Y~[DL01A~2000~INR~SDQUA~INV~TESTTEST~{2000~1000~}]

The message is parsed successfully.

When my input message is ( the outer group occurs 2 times ) :
PACCRE~NA~PORT~~~Extra1~Extra2~Extra3~1234567890~TKMQL~NEXT~OBILL~2000~INR~1~B~Y~[DL01A~2000~INR~SDQUA~INV~TESTTEST~{2000~1000~}~DL01A~2000~INR~SDQUA~INV~TESTTEST~{2000~1000~}~]

the following exception is thown :
<ParserException>
<File>/build/S500_P/src/cpi/pwf/tds/tdsworker.cpp</File>
<Line>318</Line>
<Function>CTDSWorker::hasNext</Function>
<Type></Type>
<Name></Name>
<Label></Label>
<Text>TDS General Error</Text>
<Catalog>BIPv500</Catalog>
<Severity>1</Severity>
<Number>5421</Number>
<Insert>
<Type>5</Type>
<Text>POR_ACC_RCVBLS_PS</Text>
</Insert>
<Insert>
<Type>5</Type>
<Text>/POR_ACC_RCVBLS_PS</Text>
</Insert>
<Insert>
<Type>2</Type>
<Text>129</Text>
</Insert>
<ParserException>
<File>/build/S500_P/src/MTI/MTIforBroker/MtiImbParser2/MtiImbFIHandler.cpp</File>
<Line>597</Line>
<Function>MtiImbFIHandler::endMessageContent</Function>
<Type></Type>
<Name></Name>
<Label></Label>
<Text>MTI. Not all the buffer was used when reading message</Text>
<Catalog>BIPv500</Catalog>
<Severity>3</Severity>
<Number>5288</Number>
<Insert>
<Type>5</Type>
<Text></Text>
</Insert>
</ParserException>
</ParserException>
</RecoverableException>
</RecoverableException>
</RecoverableException>
</ExceptionList>
</Error>

While debugging, I found that the first outer group is parsed completely and the second outer group parsing is failing.
From some of the earlier posts, I understand that 'MTI. Not all the buffer was used when reading message' happens when the message is parsed successfully but the bitstream has somemore information.
Can someone tell me the why second occurrence of the outer group is getting treated as extra info after parsing ?
It should have been parsed as a repeating group.
_________________
Cheers
Raghu
Back to top
View user's profile Send private message Send e-mail
elvis_gn
PostPosted: Tue Aug 09, 2005 12:42 am    Post subject: Reply with quote

Padawan

Joined: 08 Oct 2004
Posts: 1905
Location: Dubai

Hi raghu,
I'm finding it very difficult to understand ur message set...If you could simply explain what ur message is,its complex types and the group indicator,terminator and delimiter for each, it would be easier to help you.

Also should you have a "~" at the end of sample 2....Why dont you use some different delimiters for each group....Just a suggestion

Regards.
Back to top
View user's profile Send private message Send e-mail
raghubegur
PostPosted: Tue Aug 09, 2005 1:16 am    Post subject: Reply with quote

Apprentice

Joined: 15 Jul 2002
Posts: 45

My msg set has this structure :

data1~data2~data3~[data4~data5~data6~{data7}]

The outer group has the group indicator = '[' and group terminator = ']' and all the elements within the group are delimited by '~'

The inner group has the group indicator = '{' and group terminator = '}' and it has only one data element. ( this element can repeat )

Both the groups have min occurence = 1 and max occurrence = 100

All the data elements in both the groups are mandatory( min = 1, max = 1 ).


Assuming the outer group occurs only once and within this the inner group also occurs only once then a sample msg would be :
data1~data2~data3~[Outer1a~Outer1b~Outer1c~{Inner1}]
This is getting successfully parsed.


Assuming the outer group occurs TWICE and within this the inner group occurs only once then a sample msg would be :
data1~data2~data3~[Outer1a~Outer1b~Outer1c~{Inner1}Outer2a~Outer2b~Outer2c~{Inner1}]]

This is failing with the following error :

<ParserException>
<File>/build/S500_P/src/cpi/pwf/tds/tdsworker.cpp</File>
<Line>318</Line>
<Function>CTDSWorker::hasNext</Function>
<Type></Type>
<Name></Name>
<Label></Label>
<Text>TDS General Error</Text>
<Catalog>BIPv500</Catalog>
<Severity>1</Severity>
<Number>5421</Number>
<Insert>
<Type>5</Type>
<Text>POR_ACC_RCVBLS_PS</Text>
</Insert>
<Insert>
<Type>5</Type>
<Text>/POR_ACC_RCVBLS_PS</Text>
</Insert>
<Insert>
<Type>2</Type>
<Text>128</Text>
</Insert>
<ParserException>
<File>/build/S500_P/src/MTI/MTIforBroker/MtiImbParser2/MtiImbFIHandler.cpp</File>
<Line>597</Line>
<Function>MtiImbFIHandler::endMessageContent</Function>
<Type></Type>
<Name></Name>
<Label></Label>
<Text>MTI. Not all the buffer was used when reading message</Text>
<Catalog>BIPv500</Catalog>
<Severity>3</Severity>
<Number>5288</Number>
<Insert>
<Type>5</Type>
<Text></Text>
</Insert>
</ParserException>
</ParserException>
</RecoverableException>
</ExceptionList>
</Error>
_________________
Cheers
Raghu
Back to top
View user's profile Send private message Send e-mail
elvis_gn
PostPosted: Tue Aug 09, 2005 1:54 am    Post subject: Reply with quote

Padawan

Joined: 08 Oct 2004
Posts: 1905
Location: Dubai

What is POR_ACC_RCVBLS_PS in your message...Is it a field...if it is then you should check coz the problem is most probably with it.

Have you forgotten to add the "~" between Inner1}Outer2a......???

U should not be having two "]" at the end of the message.......

The Inner group has repeating element, so U should be having a delimiter for it also .....
Back to top
View user's profile Send private message Send e-mail
raghubegur
PostPosted: Tue Aug 09, 2005 2:38 am    Post subject: Reply with quote

Apprentice

Joined: 15 Jul 2002
Posts: 45

Elvis,
I am sorry that I did not post correct data earlier.
I used the following message

data1~data2~data3~[Outer1a~Outer1b~Outer1c~{Inner1~}~Outer2a~Outer2b~Outer2c~{Inner1~}]

Only the first outer group is getting parsed completely and the second group is getting lost. When I ran the flow in debug mode, I saw the following error attached as the last element of the message.
" ImbRecoverableException caught from worker->parseNext. "

No exception was actually thrown. The message went to the output node with only the first outer group information.
_________________
Cheers
Raghu
Back to top
View user's profile Send private message Send e-mail
elvis_gn
PostPosted: Tue Aug 09, 2005 2:47 am    Post subject: Reply with quote

Padawan

Joined: 08 Oct 2004
Posts: 1905
Location: Dubai

Let me guess, your getting the field Inner1 and then u get the error u mentioned....

The error is becoz the parser could not map the input correctly...I think there should not be a "~" after the Inner1.....

Try running the data without that and check....

If it still does not work you can send me the set at elvis.ninan@patni.com and i'll have a look if you want....

Regards.
Back to top
View user's profile Send private message Send e-mail
raghubegur
PostPosted: Tue Aug 09, 2005 3:42 am    Post subject: Reply with quote

Apprentice

Joined: 15 Jul 2002
Posts: 45

Elvis,

I changed the inner group's max occurrence to 1 ( it was earlier 100 ).
Then I submitted this message with 2 outer groups.

data1~data2~data3~[Outer1a~Outer1b~Outer1c~{Inner1}~Outer2a~Outer2b~Outer2c~{Inner1}]

It works for any number of outer groups.

But my requirement is that the inner group should have a max occurrence = 100.
_________________
Cheers
Raghu
Back to top
View user's profile Send private message Send e-mail
kimbert
PostPosted: Tue Aug 09, 2005 5:30 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Quote:
{Inner1~}

Why the ~? Is it the Repeating Element Delimiter for the inner group?
Whatever, the TDS parser should not need this trailing delimiter. Try removing it and see whether the parsing starts to work.
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 » TDS General Error
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.