none
You cannot map on a send port calling a Oracle procedure? RRS feed

  • Question

  • Hi xperts,

    Im using the Microsoft BizTalk Adapter 3.0 for Oracle Database from the Microsoft BizTalk Adapter Pack. 

    Im calling a procedure in Oracle and are puzzled by the following...

    I have a request-response scenario, receiving an http post in biztalk, mapping this request to my Oracle procedure request and then vice verca with the response. When i put my maps on the http receive side, then everything is good and the request/response flow executes succesfully.

    However, when I put my maps on the Oracle sendport inbound/outbound respectively, then an error is thrown:

    The adapter failed to transmit message going to send port "[MySendPortName]" with URL "[URL]". It will be retransmitted after the retry interval specified for this Send Port. Details:"Microsoft.ServiceModel.Channels.Common.XmlReaderParsingException: The order of the input XML node does not conform with the schema. The XML node [MySchemaNode] is expected, but node [The node from my source schema] is specified. Specify node [MySchemaNode].

    1. THIS WORKS: Receiving HTTP Request with map --> Sending Oracle Request --> Receiving Oracle Response --> Sending HTTP Response with map
    2. DOESNT WORK: Receiving HTTP Request --> Sending Oracle Request with map --> Receiving Oracle Response  with map  --> Sending HTTP Response

    In order to debug i created a send port to send out my request in both scenarioes, and as I expected they were completely identical. Can it really be true, that you cannot put a map on a two way Oracle Send port?
    Monday, February 23, 2009 1:23 PM

Answers

  • Exploring one possibility:

    Let A denote the Oracle adapter expected schema
    Let B denote the schema the map converts from

    Now,

    Is it that your (logical) send port expects a message of schema A, but you are passing in a message of schema B into the port, and using a map inside the port to convert it to A? Now, as the port expects a message of type A but gets a message of type B, you get an exception.

    Wednesday, February 25, 2009 1:02 PM

All replies

  • There is no such restriction :)

    Looks like the map you have put is generating an XML that does not confirm to the schema that was generated using the adapter.
    Tuesday, February 24, 2009 6:22 AM
  • Hi, Manas.

    Can you come up with any ideas of debugging? I feel really stuck here with one message being accepted, the other one doesnt, and they are completely the same! And both generated files are validated against the schema.
    Wednesday, February 25, 2009 7:48 AM
  • Exploring one possibility:

    Let A denote the Oracle adapter expected schema
    Let B denote the schema the map converts from

    Now,

    Is it that your (logical) send port expects a message of schema A, but you are passing in a message of schema B into the port, and using a map inside the port to convert it to A? Now, as the port expects a message of type A but gets a message of type B, you get an exception.

    Wednesday, February 25, 2009 1:02 PM