|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Problems with testing File Input (DFDL) -> Queue -> XM |
« View previous topic :: View next topic » |
Author |
Message
|
tank_n_spank |
Posted: Thu Sep 25, 2014 1:09 am Post subject: Problems with testing File Input (DFDL) -> Queue -> XM |
|
|
Apprentice
Joined: 02 Sep 2014 Posts: 37
|
Hello,
So basically I have got a FILE INPUT node which is polling a text file every 5 seconds, but when I try to test my message flow, I just get a blank Input node and an error message pops out, even thought I have specified the FILE Input Node? I want then to pass it to a QUEUE, get the information from a QUEUE and insert it into the database.
I can successfully run the parsing, and I can see all 3 elements of my file - body_elem1, body_elem2 and body_elem3.
When I want to pass them to a queue and then into my database, do I need to declare them as SET OUTPUTROOT.DFDL.*:MyDFDLMessage.*:body.*:body_elem1 = InputBody.*:MyDFDLMessage.*:body.*:body_elem1; for each element?
Also do I need to declare the XMLNSC output somewhere, individually or through loop .*:body[1];?
I am really puzzled, so any help would be quite appreciated :S 
Last edited by tank_n_spank on Fri Sep 26, 2014 2:37 am; edited 2 times in total |
|
Back to top |
|
 |
kimbert |
Posted: Thu Sep 25, 2014 3:49 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Not enough information to answer your questions.
Quote: |
when I try to test my message flow, I just get a blank Input node |
I don't understand. Are you using the Message Flow Debugger and seeing an empty tree structure? Or something else?
Quote: |
and an error message pops out |
Which error message? How are we supposed to help if we don't know what the error message said?
Quote: |
even thought I have specified the FILE Input Node |
er...where did you specify it?
Quote: |
I can successfully run the parsing, and I can see all 3 elements of my file - body_elem1, body_elem2 and body_elem3.
|
Good
Quote: |
When I want to pass them to a queue and then into my database, do I need to declare them as SET OUTPUTROOT.DFDL.*:MyDFDLMessage.*:body.*:body_elem1 = InputBody.*:MyDFDLMessage.*:body.*:body_elem1; for each element? |
It depends entirely on your requirements. If you want to copy the entire message tree then you can just write
SET OutputRoot = InputRoot;
...and lower-level subtrees can be copied in the same way, without specifying all of their children.
But if you want to copy the entire tree then you don't need a Compute node at all.
...unless your output format on the queue is different from the input format from the file. But you didn't say either way.
Quote: |
Also do I need to declare the XMLNSC output somewhere, individually or through loop .*:body[1];?
|
If you want to output some XML then you will need to create an OutputRoot.XMLNSC somewhere in your application. But I don't have a clear enough picture of your requirements to advise on where. _________________ 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 |
|
 |
tank_n_spank |
Posted: Thu Sep 25, 2014 5:06 am Post subject: |
|
|
Apprentice
Joined: 02 Sep 2014 Posts: 37
|
Hello,
I rebuilt and redeployed my bar file, so now I am able to launch my debugger and debug the flow.
An exception is being thrown when poll my .txt file from the fileinput directory.
CTDP3000E: Unexpected end of data at byte offset '<MISSING INSERT 0>' while parsing element '<MISSING INSERT 1>'. The parser encountered the end of the data stream or the end of a parent element.
I will add the OutputRoot.XMLNSC bit now and see if I can propagate it.
I have a text file, after the DFDL parser parses, I get an XML file with my 3 elements created based on the file - body_elem1, body_elem2 and body_elem3, after that I want to propagate the xml file to my Queue, read back from the Queue in a different message flow and insert into the database.
The database is pretty much straight forward, I am just having problems with this bit.
The data in my Message Queue is a little bit odd, but essentially i did receive the correct information:
Code: |
<NS1:INSTRUCTIONS xmlns:NS1="http://www.test.com/test/esql/out"><NS1:TASK><Properties><MessageSet></MessageSet><MessageType>{}:MyDFDLMessage</MessageType><MessageFormat></MessageFormat><Encoding>546</Encoding><CodedCharSetId>850</CodedCharSetId><Transactional>false</Transactional><Persistence>false</Persistence><CreationTime>2014-09-25T09:45:23.864</CreationTime><ExpirationTime>-1</ExpirationTime><Priority>0</Priority><ReplyIdentifier></ReplyIdentifier><ReplyProtocol>ADAPTOR</ReplyProtocol><Topic></Topic><ContentType></ContentType><IdentitySourceType></IdentitySourceType><IdentitySourceToken></IdentitySourceToken><IdentitySourcePassword></IdentitySourcePassword><IdentitySourceIssuedBy></IdentitySourceIssuedBy><IdentityMappedType></IdentityMappedType><IdentityMappedToken></IdentityMappedToken><IdentityMappedPassword></IdentityMappedPassword><IdentityMappedIssuedBy></IdentityMappedIssuedBy></Properties><DFDL><MyDFDLMessage><body><body_elem1>12345</body_elem1><body_elem2>1234 |
But the 2nd element's tag is not closed, and the 3rd one is missing.
Also is this how am I supposed to declare it:
Code: |
SET OutputRoot.DFDL.*:MyDFDLMessage.*:body.*:body_elem1 = InputBody.*:MyDFDLMessage.*:body.*:body_elem1;
SET OutputRoot.XMLNSC.MyDFDLMessage.*:body.*:body_elem1 = InputRoot.XMLNSC.:MyDFDLMessage.*:body.*:body_elem1; |
I mean the inputRoot.XMLNSC in my 2nd Message flow, and output.dfdl in my file input message flow?
my first message flow is - FILE INPUT -> COMPUTE NODE -> MQ OUTPUT
My 2nd message flow is MQ Input - > Compute NODE
Thanks one more time.[/code] |
|
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
|
|
|
|