Monday, September 5, 2011

BizTalk - WcfSendPort - BtsActionMapping - is invalid

I have been getting the below error when sending request message to oracle db from biztalk 2009 R2

The adapter failed to transmit message going to send port "WcfSendPort_OracleDBBinding_SCHEMA_View_VIEWNAME_Custom" with URL "oracledb://CONNECTIONSTRING/". It will be retransmitted after the retry interval specified for this Send Port. Details:"Microsoft.ServiceModel.Channels.Common.MetadataException: Argument <BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Operation Name="Select" Action="
http://Microsoft.LobServices.OracleDB/2007/03/SCHEMA/View/VIEWNAME/Select" />
</BtsActionMapping> is invalid.

Server stack trace:
   at System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result)
   at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result)
   at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
   at System.ServiceModel.Channels.ServiceChannel.EndRequest(IAsyncResult result)

Exception rethrown at [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at System.ServiceModel.Channels.IRequestChannel.EndRequest(IAsyncResult result)
   at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.RequestCallback(IAsyncResult result)".


Scenario: i auto generated schema from oracle db view. created orchestration(file receive-db req-db resp - transform(for final resp) - final response). deployed on biztalk 2009 successfully.
created output instance from the adapter generated schema with root reference "Select"

<ns0:Select xmlns:ns0="http://Microsoft.LobServices.OracleDB/2007/03/SCHEMA/View/VIEWNAME">
  <ns0:COLUMN_NAMES>*</ns0:COLUMN_NAMES>
  <ns0:FILTER></ns0:FILTER>
</ns0:Select>

used this xml in file receive location.in db req stage it is stuck . checked the binding, everything is fine since i imported the binding from the project i never suspected the <BtsActionMapping> tag.
changed EnableBizTalkCompatibiltyMode to True & UseAmbientTransaction to False. still no luck.
created a new DB request-response port removed the imported binding port.changed EnableBizTalkCompatibiltyMode to True & UseAmbientTransaction to False.didn't forget to set credentials username in CAPS,in SOAP Action header added only

http://Microsoft.LobServices.OracleDB/2007/03/SCHEMA/View/VIEWNAME/Select
without <BtsActionMapping> tag.

tried again

voila it works!!!

2 comments:

  1. I've been trying to get BizTalk (2013 R2) working with Oracle off/on for about two weeks. Thank you so much for posting this solution. I'm now able to move on with my projects.

    ReplyDelete
    Replies
    1. Now that I know about the two parameters, EnableBizTalkCompatibilityMode and UseAmbientTransaction, I discovered these can be configured in Visual Studio via the Consume Adapter Service. The "...bindinginfo.xml" file will then have the proper settings when the physical port is created in the BizTalk application.

      Delete