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 » Problem with TDS model

Post new topic  Reply to topic
 Problem with TDS model « View previous topic :: View next topic » 
Author Message
gecs
PostPosted: Tue Apr 22, 2014 8:21 am    Post subject: Problem with TDS model Reply with quote

Acolyte

Joined: 14 Nov 2007
Posts: 58

Hi everybody, I'm trying to design logical structure of this input message:

Code:

<HDR>some variable data</HDR><FAIL>some variable data</FAIL><ADV>some variable data</ADV><msjA>fixed length data</msjA><msjB>fixed length data</msjB><msjC>fixed length data</msjC>


Considerations:
<HDR>: it always come (only 1 ocurrence)
<FAIL>,<ADV>: they sometimes come (min occur: 0 - max occur: 1)
<msjA>,<msjB>,<msjC>: they sometimes come and can have more than one ocurrence (min occur: 0 - max occur: -1)

I've created this structure (TDS):
Body
- HDR .... tHDR [1..1 ]
-data (string)
- FAIL ... tFAIL [0..1 ]
-data (string)
- ADV .... tADV [0..1 ]
-data (string)
- msjA ... tMsjA [0..-1]
-data (string)
- msjB ... tMsjB [0..-1]
-data (string)
- msjC ... tMsjC [0..-1]
-data (string)

For each "type" (tHDR, tFAIL, tADV, etc...) i've configured this properties:

Field identification (Physical properties)
- Data Element Separation: "Fixed Length"
- Group Indicator: "<LT>[LABEL]<GT>" (*)
- Group Terminator: "<LT>/[LABEL]<GT>" (*)

* where [LABEL] is set for each type: HDR, FAIL, ADV, msjA, msjB, msjC.

When I test the message set (on a input node), it throws this exception:

Code:
Exception: ( ['MQROOT' : 0x14fe970]
  (0x01000000:Name):RecoverableException = (
    (0x03000000:NameValue):File            = '/build/S700_P/src/DataFlowEngine/ImbTraceNode.cpp' (CHARACTER)
    (0x03000000:NameValue):Line            = 341 (INTEGER)
    (0x03000000:NameValue):Function        = 'ImbTraceNode::evaluate' (CHARACTER)
    (0x03000000:NameValue):Type            = 'ComIbmTraceNode' (CHARACTER)
    (0x03000000:NameValue):Name            = 'MF_Rs_02#FCMComposite_1_2' (CHARACTER)
    (0x03000000:NameValue):Label           = 'MF_Rs_02.Inicial' (CHARACTER)
    (0x03000000:NameValue):Catalog         = 'BIPmsgs' (CHARACTER)
    (0x03000000:NameValue):Severity        = 3 (INTEGER)
    (0x03000000:NameValue):Number          = 2230 (INTEGER)
    (0x03000000:NameValue):Text            = 'Caught exception and rethrowing' (CHARACTER)
    (0x01000000:Name     ):ParserException = (
      (0x03000000:NameValue):File            = '/build/S700_P/src/MTI/MTIforBroker/MtiImbParser2/MtiImbParser.cpp' (CHARACTER)
      (0x03000000:NameValue):Line            = 748 (INTEGER)
      (0x03000000:NameValue):Function        = 'MtiImbParser::parseRightSibling' (CHARACTER)
      (0x03000000:NameValue):Type            = 'ComIbmMQInputNode' (CHARACTER)
      (0x03000000:NameValue):Name            = 'MF_Rs_02#FCMComposite_1_1' (CHARACTER)
      (0x03000000:NameValue):Label           = 'MF_Rs_02.MQ_Input' (CHARACTER)
      (0x03000000:NameValue):Catalog         = 'BIPmsgs' (CHARACTER)
      (0x03000000:NameValue):Severity        = 3 (INTEGER)
      (0x03000000:NameValue):Number          = 5285 (INTEGER)
      (0x03000000:NameValue):Text            = 'ImbRecoverableException caught from worker->parseNext.' (CHARACTER)
      (0x01000000:Name     ):Insert          = (
        (0x03000000:NameValue):Type = 5 (INTEGER)
        (0x03000000:NameValue):Text = 'MS_TDS_test' (CHARACTER)
      )
      (0x01000000:Name     ):Insert          = (
        (0x03000000:NameValue):Type = 2 (INTEGER)
        (0x03000000:NameValue):Text = '1' (CHARACTER)
      )
      (0x01000000:Name     ):Insert          = (
        (0x03000000:NameValue):Type = 5 (INTEGER)
        (0x03000000:NameValue):Text = 'Text1' (CHARACTER)
      )
      (0x01000000:Name     ):Insert          = (
        (0x03000000:NameValue):Type = 5 (INTEGER)
        (0x03000000:NameValue):Text = '/mPS9MsgOUT_tmp/HDR/data' (CHARACTER)
      )
      (0x01000000:Name     ):ParserException = (
        (0x03000000:NameValue):File            = '/build/S700_P/src/cpi/pwf/nxd/nxdworker.cpp' (CHARACTER)
        (0x03000000:NameValue):Line            = 462 (INTEGER)
        (0x03000000:NameValue):Function        = 'NXDWorker::parseNext' (CHARACTER)
        (0x03000000:NameValue):Type            = '' (CHARACTER)
        (0x03000000:NameValue):Name            = '' (CHARACTER)
        (0x03000000:NameValue):Label           = '' (CHARACTER)
        (0x03000000:NameValue):Catalog         = 'BIPmsgs' (CHARACTER)
        (0x03000000:NameValue):Severity        = 3 (INTEGER)
        (0x03000000:NameValue):Number          = 5421 (INTEGER)
        (0x03000000:NameValue):Text            = 'TDS General Error' (CHARACTER)
        (0x01000000:Name     ):Insert          = (
          (0x03000000:NameValue):Type = 5 (INTEGER)
          (0x03000000:NameValue):Text = 'mPS9MsgOUT_tmp' (CHARACTER)
        )
        (0x01000000:Name     ):Insert          = (
          (0x03000000:NameValue):Type = 5 (INTEGER)
          (0x03000000:NameValue):Text = '/mPS9MsgOUT_tmp/FAIL' (CHARACTER)
        )
        (0x01000000:Name     ):Insert          = (
          (0x03000000:NameValue):Type = 2 (INTEGER)
          (0x03000000:NameValue):Text = '5' (CHARACTER)
        )
        (0x01000000:Name     ):ParserException = (
          (0x03000000:NameValue):File     = '/build/S700_P/src/cpi/pwf/nxd/nxddataelementseparation.cpp' (CHARACTER)
          (0x03000000:NameValue):Line     = 705 (INTEGER)
          (0x03000000:NameValue):Function = 'NXDDataElementSeparation::checkGroupIndicator' (CHARACTER)
          (0x03000000:NameValue):Type     = '' (CHARACTER)
          (0x03000000:NameValue):Name     = '' (CHARACTER)
          (0x03000000:NameValue):Label    = '' (CHARACTER)
          (0x03000000:NameValue):Catalog  = 'BIPmsgs' (CHARACTER)
          (0x03000000:NameValue):Severity = 3 (INTEGER)
          (0x03000000:NameValue):Number   = 5437 (INTEGER)
          (0x03000000:NameValue):Text     = 'Missing a group indicator for complex type or group' (CHARACTER)
          (0x01000000:Name     ):Insert   = (
            (0x03000000:NameValue):Type = 5 (INTEGER)
            (0x03000000:NameValue):Text = 'tFAIL' (CHARACTER)
          )
          (0x01000000:Name     ):Insert   = (
            (0x03000000:NameValue):Type = 5 (INTEGER)
            (0x03000000:NameValue):Text = '<FAIL>' (CHARACTER)
          )
          (0x01000000:Name     ):Insert   = (
            (0x03000000:NameValue):Type = 2 (INTEGER)
            (0x03000000:NameValue):Text = '5' (CHARACTER)
          )
        )
      )
    )
  )


Is there any additional configuration? I hope you can help me. Thanks in advance.

Additional info:
OS: Linux
SW: Websphere Message Broker 7.0 & MQ 7.0[/b]
Back to top
View user's profile Send private message
kimbert
PostPosted: Tue Apr 22, 2014 8:29 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

I should be able to help.
Please post ( at least ) two example messages. One with the 'Fail' record and one without. Please put [c o d e ] tags around the example data - as you did for the Trace node output.
_________________
Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too.
Back to top
View user's profile Send private message
gecs
PostPosted: Tue Apr 22, 2014 9:34 am    Post subject: Reply with quote

Acolyte

Joined: 14 Nov 2007
Posts: 58

kimbert wrote:
I should be able to help.


Thanks Kimbert !!!

Below, two cases (fail and success).

FAIL
Code:
<HDR>some variable data</HDR><FAIL>some variable data</FAIL>


SUCCESS
Code:
<HDR>some variable data</HDR><ADV>some variable data</ADV><msjA>fixed length data</msjA><msjB>fixed length data</msjB><msjC>fixed length data</msjC>
Back to top
View user's profile Send private message
kimbert
PostPosted: Tue Apr 22, 2014 12:47 pm    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Looks like you either have a failure message or a normal message. That suggests that a choice group would be appropriate:
Code:

Body
    HDR [1..1 ]
    choice group ( note : this is a group, not an element )
        FAIL ... tFAIL [1..1 ]
        sequence group
            ADV .... tADV [0..1 ]
            msjA ... tMsjA [0..-1]
            msjB ... tMsjB [0..-1]
            msjC ... tMsjC [0..-1]
I will let you work out whether the [0..1]s are correct in the non-failure message variant.

I suggest that you model the choice group as 'Tagged Delimited' and change the Group Indicator properties to Tags.
Similarly, on the sequence group within the choice, set Data Element Separation to 'Tagged Delimited'.
_________________
Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too.
Back to top
View user's profile Send private message
gecs
PostPosted: Fri Apr 25, 2014 9:11 am    Post subject: Reply with quote

Acolyte

Joined: 14 Nov 2007
Posts: 58

Hi Kimbert, one question, what do you mean whit this...?

kimbert wrote:
and change the Group Indicator properties to Tags.


I have this model:

Code:

Body --- tBody (Tagged Delimited)
  HDR [1..1 ]
    choice group (Tagged Delimited)
        FAIL ... tFAIL [1..1 ]
        sequence group (Tagged Delimited)
            ADV .... tADV [0..1 ]
            msjA ... tMsjA [0..-1]
            msjB ... tMsjB [0..-1]
            msjC ... tMsjC [0..-1]


The toolkit shows me 3 "problems":
Quote:
"Either Length of Tag or Tag Data Separator must be set when Data Element Separator is set to 'TaggedDelimited'. Alternatively, one of these properties could be set at the message set level. Physical format: 'Text1'..."


I don't know what value set in those properties ("tag data separator", "length of tag")...

Thank you very much for your time.

Regards
Back to top
View user's profile Send private message
kimbert
PostPosted: Fri Apr 25, 2014 2:00 pm    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Look on the complex type or sequence group where you chose 'Tagged Delimited'. There is another pair of properties 'Tag Length' or 'Tag Data Separator'.

If you choose 'Tag Length' then all the tags must be the same length throughout the complex type/group.
Code:
REC1fieldAfieldB
REC2fieldAfieldBfieldC
REC3fieldAfieldBfieldZ
...


If you choose Tag Data Separator then you must specify a character ( or a string ) that separates the tag from the data.
Code:
REC1:fieldAfieldB
R2:fieldAfieldBfieldC
RECORD3:fieldAfieldBfieldZ
...

_________________
Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too.
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 » Problem with TDS model
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.