|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Problem with TDS model |
« View previous topic :: View next topic » |
Author |
Message
|
gecs |
Posted: Tue Apr 22, 2014 8:21 am Post subject: Problem with TDS model |
|
|
 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 |
|
 |
kimbert |
Posted: Tue Apr 22, 2014 8:29 am Post subject: |
|
|
 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 |
|
 |
gecs |
Posted: Tue Apr 22, 2014 9:34 am Post subject: |
|
|
 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 |
|
 |
kimbert |
Posted: Tue Apr 22, 2014 12:47 pm Post subject: |
|
|
 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 |
|
 |
gecs |
Posted: Fri Apr 25, 2014 9:11 am Post subject: |
|
|
 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 |
|
 |
kimbert |
Posted: Fri Apr 25, 2014 2:00 pm Post subject: |
|
|
 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 |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|