none
WCF-OracleDB adapter generates Data At Root level is invalid RRS feed

  • Question

  • Hi - I have 3 components in my VS 2010 BizTalk project 1. Flat File Schema, 2. Map 3. Wcf schema. The Wcf Schema was generated from the Add Generated Items | Consume Adapter Service. The binding is of type OracleDB. I select a procedure from a package. The procedure has three parameters, all varchar2. In the map I connect three fields (string) to the three arguments in the stored procedure.

    I have verified the file instance against the flat file schema and I have tested the map and it succeeds.

    In BizTalk server I import the bindings generated for the WCF-Oracle DB. I create a receive port for the flat file inbound map uses the flat file schema - it is a one way receive, pass-through transmit. I configure the send port from importing the bindings. Set the map to the inbound maps, set the filter for the receive port name. Send pipeline is XML Transmit, receive pipeline is PassThruReceive.

    When I put the flat file in the receive location I get the following error from the send port:

    A message sent to adapter "WCF-Custom" on send port "WcfSendPort_OracleDBBinding_S2KDBA_Package_WCF_PKG_Custom" with URI "oracledb://wafedgplpdo11:1521/PDEV/Dedicated" is suspended.
     Error details: There was a failure executing the send pipeline: "Microsoft.BizTalk.DefaultPipelines.XMLTransmit, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Source: "XML assembler" Send Port: "WcfSendPort_OracleDBBinding_S2KDBA_Package_WCF_PKG_Custom" URI: "oracledb://wafedgplpdo11:1521/PDEV/Dedicated" Reason: Data at the root level is invalid. Line 1, position 1. 
     MessageId:  {5BAC7C55-F7EB-4A79-9305-3EAF5365BBA1}
     InstanceID: {BDBBCBA4-756B-4F8D-91A3-C1030E50FCB7}

    The map tested fine in VS 2010 so I am at a loss as to what the error really means - I actually tested the stored procedure as a post polling action in a polling receive port and the procedure executes with no error.

    Anybody have a clue as to what this error is trying to tell me?

    Any help appreciated.


    Harold Rosenkrans
    Thursday, January 13, 2011 8:27 PM

Answers

  • Ok, I finally figured out what the problem is - I needed a custom pipeline with a file disassembler for the receive port. Sometimes this BizTalk stuff is like assembling a 5,000 piece jigsaw puzzle where all the peices are red.

     

    Thanks


    Harold Rosenkrans
    • Marked as answer by Hal Rose Friday, January 14, 2011 5:23 PM
    Friday, January 14, 2011 5:23 PM

All replies

  • Hi Harold,

    Does the output of map validate against the schema belonging to message that is send (i.e. your using XMLTransmit, where error occurs). It looks the message coming to your send port is not valid xml. You could temporarily change the pipeline of your send port to PassThru and then examin the message (i.e. using FILE Adapter to be able to put output in folder). Test this against schema.

    HTH

    Regards,

    Steef-Jan Wiggers
    MVP & MCTS BizTalk Server
    http://soa-thoughts.blogspot.com/
    If this answers your question please mark it accordingly


    BizTalk
    Thursday, January 13, 2011 8:49 PM
    Moderator
  • Your reply makes a lot of sense. What I don't have enough information is what goes on under the covers. My flat file has three lines of text. The flat file schema has a root element and three child field elements representing the three lines of text. I map the flat file schema to the WCFOracleDB schema. In my naiveté I expected data to magically flow from the text file to the adapter.

    So when the receive port consumes the text file, since it is pass through recieve, you are saying that text is being passed through. I will try an xml file and make the receive port an xml recieve port just to test the efficacy of the stored procedure call.

    but, to actually read a text file like I am describing what exactly do I need to do? Is it a matter of taking the text message and assembling it into xml in an orchestration?

     

    Thanks


    Harold Rosenkrans
    • Marked as answer by Hal Rose Friday, January 14, 2011 5:23 PM
    • Unmarked as answer by Hal Rose Friday, January 14, 2011 5:23 PM
    Friday, January 14, 2011 4:30 PM
  • Ok, I finally figured out what the problem is - I needed a custom pipeline with a file disassembler for the receive port. Sometimes this BizTalk stuff is like assembling a 5,000 piece jigsaw puzzle where all the peices are red.

     

    Thanks


    Harold Rosenkrans
    • Marked as answer by Hal Rose Friday, January 14, 2011 5:23 PM
    Friday, January 14, 2011 5:23 PM