We have an application that utilizes the WCF-OracleDB adapter on a send port connecting to an Oracle database. The application sends insert statements to a stored procedure that inserts the data into one of the tables. The table has a column for City Fee Amount that allows NULL values. The schema that we populate the insert statement into contains a corresponding node called "P_CITY_FEE_AMT", that node is also set to allow null values. WE are running into an intermittent issue in which an error message is returned to BizTalk stating the value for field P_CITY_FEE_AMT cannot be NULL. We are not seeing any error messages in the Oracle database so it appears the error is being generated by the adapter. Any ideas as to why it would be generating an error like this when the schema and the target table both allow NULL values for this field?
Error Message:
A message sent to adapter "WCF-OracleDB" on send port "SendSproc" with URI "oracledb://test" is suspended. Error details: Microsoft.ServiceModel.Channels.Common.XmlReaderParsingException: The value for field "P_CITY_FEE_AMT" is invalid. ---> System.ArgumentNullException: Value cannot be null. Parameter name: numStr at Oracle.DataAccess.Types.OracleDecimal..ctor(String numStr, String format) at Microsoft.Adapters.OracleCommon.OracleCommonMetadataUtils.CreateParameterValue(OracleDbType oracleType, Object xmlValue, OracleConnection dbConn, Boolean ignoreLOB, String fieldName) --- End of inner exception stack trace --- 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) MessageId: {A4503B09-51A0-48B7-915C-753100D250A7} InstanceID: {D8DC8808-41B9-47CC-A790-ACA0963E5BFE
Insert Message:
<ns0:TSA103 xmlns:ns0="http://Microsoft.LobServices.OracleDB/2007/03/BIZTALK/Procedure"> <ns0:P_CITY_FEE_AMT/> <ns0:P_NO_LOCATIONS_NBR>1</ns0:P_NO_LOCATIONS_NBR> <ns0:P_STATE_FEE_AMT>12.00</ns0:P_STATE_FEE_AMT> <ns0:P_DOC_LOC_NBR_REGION>1234567890</ns0:P_DOC_LOC_NBR_REGION> <ns0:P_DLN_OCCUR_ID_REGION>0</ns0:P_DLN_OCCUR_ID_REGION> <ns0:P_REGION_CD>MAR</ns0:P_REGION_CD> <ns0:P_UPDATE_IF_EXISTS_INDC>N</ns0:P_UPDATE_IF_EXISTS_INDC> </ns0:TSA103>