Solutiion to ORA-24777: use of non-migratable database link not allowed ---> Oracle.DataAccess.Client.OracleException ORA-24777: RRS feed

  • General discussion

  • LOB Adapters 2.0 Biztalk 2009 -  WCF Oracle DB Adapter

    The following error occurs when you are are using Oracle dedicated vs shared services for connections.  The error only manifests itself when you
    are going across database links with any object (view, stored proc).  The solution is ...  In you BT Admin Console --> application --> sendport --> send port properties --> General.  Select "Configure" button and go to "Bindings" Tab.   Change "useAmbientTransaction" to False.  Hopefully this gets indexed via Bing/Google and someone
    can use it.  I could not find an answer on the internet but only stumbled across it.

    Event Type: Warning
    Event Source: BizTalk Server 2009
    Event Category: (1)
    Event ID: 5743
    Date: 11/2/2009
    Time: 10:09:24 AM
    User: N/A

    The adapter failed to transmit message going to send port "WcfSendPort_OracleDBBinding_EDDBM_View_GET_WO_4_Custom" with URL "oracledb://gisdev". It will be retransmitted after the retry interval specified for this Send Port. Details:"Microsoft.ServiceModel.Channels.Common.TargetSystemException: ORA-24777: use of non-migratable database link not allowed ---> Oracle.DataAccess.Client.OracleException ORA-24777: use of non-migratable database link not allowed at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck)

    at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, String procedure, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, Boolean bCheck)

    at Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior)

    at Oracle.DataAccess.Client.OracleCommand.ExecuteReader(CommandBehavior behavior)

    at Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteReader(OracleCommonConnectionWrapper connection, String commandText, IEnumerable`1 parameters, CommandBehavior commandBehavior, IOracleAdapterCommonBindingProperties properties, OracleCommonExecutionHelper executionHelper)

    --- End of inner exception stack trace ---

    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)".

    Thursday, November 5, 2009 11:15 PM

All replies

  • Interestingly, I have to set UseAmbientTransaction to false for SQL linked servers too using the WCF-SQL adapter.


    If this answers your question, please use the "Answer" button to say so | Ben Cline
    Monday, November 9, 2009 4:18 PM
  • Same issue we are having with the Oracle linked servers ..Ambient transaction ahve to be off
    Thursday, January 6, 2011 3:33 PM
  • I have the same problem of non-migratable database and solved by setting UseAmbientTransaction to false.

    But what is the meaning of UseAmbientTransaction  ?


    Thursday, May 21, 2015 7:37 AM