none
Unable to enlist in a distributed transaction RRS feed

  • Question

  • I am getting the below error when trying to generate EDI file by picking data from OracleDB. Kindly assist.

    The adapter failed to transmit message going to send port "WcfSendPort_OracleDBBinding_Package_IBK_EDI_PACKAGE_Custom" with URL "oracledb://ibox11g/". It will be retransmitted after the retry interval specified for this Send Port. Details:"Microsoft.ServiceModel.Channels.Common.ConnectionException: Unable to enlist in a distributed transaction ---> Oracle.DataAccess.Client.OracleException: Unable to enlist in a distributed transaction
       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, IntPtr opsErrCtx, Object src)
       at Oracle.DataAccess.Client.OracleConnection.Open()
       at Microsoft.Adapters.OracleCommon.OracleCommonConnectionWrapper..ctor(String connectionString, OracleCommonExecutionHelper executionHelper)
       at Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection(OracleCommonExecutionHelper executionHelper)
       --- 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)".


    Regards, Vivin.

    Friday, June 27, 2014 6:41 AM

Answers

  • If you experience an error where the Adapter cannot enlist in a transaction, how can the answer then be to turn on transactions?? (which I also believe it already is).

    You need to

    - Turn off transactions by setting UseAmbientTransaction to False (not recommended, when receiving through a data Adapter without transaction, BizTalk could potentially loose messages)

    - Make sure that DTC is configured and running properly on both your BizTalk- and Oracle Server.

    Morten la Cour

    • Marked as answer by Vivin Muthu Monday, July 28, 2014 12:56 PM
    Friday, June 27, 2014 11:16 AM

All replies

  • Set the value of the UseAmbientTransaction binding property to True in the adapter

    Regards, Ajeet Kumar MCTS Biztalk Server

    Friday, June 27, 2014 11:08 AM
  • If you experience an error where the Adapter cannot enlist in a transaction, how can the answer then be to turn on transactions?? (which I also believe it already is).

    You need to

    - Turn off transactions by setting UseAmbientTransaction to False (not recommended, when receiving through a data Adapter without transaction, BizTalk could potentially loose messages)

    - Make sure that DTC is configured and running properly on both your BizTalk- and Oracle Server.

    Morten la Cour

    • Marked as answer by Vivin Muthu Monday, July 28, 2014 12:56 PM
    Friday, June 27, 2014 11:16 AM
  • Hi Morten,

    I am getting the error when trying to pick multiple records  and its child records from OracleDB but when I am trying to retrieve a single record and its child records then the same is working fine. Also when I tried setting the UseAmbientTransaction to False the instance is in active state for a long time and does not generate any file even for a single record.

    Kindly advice if there is any other way.


    Regards, Vivin.

    Monday, June 30, 2014 4:52 AM
  • The file is getting generated when trying to generate for a single record but when trying to generate for multiple records (6 records) the connection gets timed out to the OracleDB (The connection time out is set to 10 mins).

    Kindly advice.


    Regards, Vivin.

    Wednesday, July 2, 2014 5:08 AM