Hello,
I am looking for a complete sample in BizTalk 2010 of how to insert a record into an Oracle database. So far, the sample I found is quite old (from Microsoft for BizTalk 2006, I think:http://msdn.microsoft.com/en-us/library/aa560681(v=bts.20).aspx). I have Oracle installed properly along with necessary adapters. From VS2010, I can add a generated items and choose to consume an adapter service using OracleDBBinding, have configured the uri properly and connected successfully to the database. In the contract type, I have selected service (inbound), selected the schema I wanted to work with and the store procedure I wanted to use (the store procedure was tested outside and worked probably, it basically inserts a record and if the key exists, it will modify the record, very simple and straight forward...nothing fancy)
I then create a simple orchestration with a receive port which is going to take an xml file from a folder. I also created a send-receive port that is going to call my store procedure to insert a record into my Oracle database. The msg will be exactly the same msg as the xml received in the receive port and I will get back the status spit out from my store procedure but I have not done anything with it (for now).
I have deployed the project successfully, configure and started the project without any incident. When I put the xml (generated from the xsd) in the received folder, BizTalk consumed it but did not insert the record into my Oracle database.
Checking the application event viewer this is what I got:
"
WcfSendPort_OracleDBBinding_XXXXX_Procedure_Custom |
oracledb://YYYYYYYYYYY |
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="RECORD_ACTIVITY" Action="http://Microsoft.LobServices.OracleDB/2007/03/xxXXXXXX/Procedure/RECORD_ACTIVITY" /> </BtsActionMapping> is invalid. Server stack trace: at System.Runtime.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) |
"
Is my sequence of doing thing correct? What is the issue with my application? I appreciate your help.