oracle-databasebiztalkwcf-bindingbiztalk-2020

Microsoft.ServiceModel.Channels.Common.MetadataException: Metadata resolution failed for OperationId


We are migrating from BizTalk 2016 to BizTalk 2020.

We have a send port WCF-Custom to execute an Oracle procedure, but in our new installation with BizTalk 2020 we receive the following error:

Microsoft.ServiceModel.Channels.Common.MetadataException: Metadata resolution failed for OperationId: "http://Microsoft.LobServices.OracleDB/2007/03/BTS/Package/PKG_BTS_PROC/PROCEDUREX". ---> System.NullReferenceException: Object reference not set to an instance of an object.

The Send Port has UseAmbientTransaction = True, Use Transaction = True and enableBizTalkCompatibilityMode = True.

The same Send Port in BizTalk 2016 is working well, but in the new version with BizTalk 2020 we get previous error with this stack trace:

   at Oracle.DataAccess.Client.OracleLogicalTransaction..ctor(OracleConnection connection, Byte[] ltxid)
   at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck, Int32 isRecoverable, OracleLogicalTransaction m_OracleLogicalTransaction)
   at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src, OracleLogicalTransaction m_oracleLogicalTransaction)
   at Oracle.DataAccess.Client.OracleConnectionOCP.Open(OracleConnection con)
   at Oracle.DataAccess.Client.OracleConnection.Open()
   at Microsoft.Adapters.OracleCommon.OracleCommonConnectionWrapper..ctor(String connectionString, OracleCommonExecutionHelper executionHelper)
   at Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection(OracleCommonExecutionHelper executionHelper)

Have we missed something during the installation?


Solution

  • The problem was with Oracle destination version.

    We update the Oracle client to version 19 and that database was in version 10.

    The error description is not very accurate :-(