none
WCF Custom- Oraclebinding issue RRS feed

  • Question

  • Hi

    i used sequential convoy to loop around my records.i have 150000 records splitted into 10000 each . every records 9 insert statements to oracle .

    <binding name="oracleDBBinding" closeTimeout="01:01:00" openTimeout="01:01:00" receiveTimeout="01:10:00" sendTimeout="01:01:00" insertBatchSize="1000" useSchemaInNameSpace="false" enableBizTalkCompatibilityMode="true" />

    i have set the wcf custom - oraclebinding  the above mentioned. it is loading alternatively . i mean 1,3,5,,7,9 all even batches failed iam getting following errors . I dont know, where things went wrong.waiting one batch to other batch is 1 min.

    thanks for the help in advance.

    rameshkumar singh

    Error Description: Microsoft.ServiceModel.Channels.Common.ConnectionException: Unable to enlist in a distributed transaction ---&gt; 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)

       at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src)

       at Oracle.DataAccess.Client.OracleConnection.Open()

       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&amp; msgData, Int32 type)

       at System.ServiceModel.Channels.IRequestChannel.EndRequest(IAsyncResult result)

       at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.RequestCallback(IAsyncResult result)

     

       at Microsoft.BizTalk.XLANGs.BTXEngine.BTXPortBase.VerifyTransport(Envelope env, Int32 operationId, Context ctx)

       at Microsoft.XLANGs.Core.Subscription.Receive(Segment s, Context ctx, Envelope&amp; env, Boolean topOnly)

       at Microsoft.XLANGs.Core.PortBase.GetMessageIdForSubscription(Subscription subscription, Segment currentSegment, Context cxt, Envelope&amp; env, CachedObject location)

       at ikaSystems.EDIPS.ikaBenefitEnrollmentInbound.ikaBenefitEnrollmentInboundOrch.segment3(StopConditions stopOn)

       at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception&amp; exp)</string>

    Monday, April 30, 2012 10:27 PM

Answers

  • Not quite sure what this has to do with EDI and AS2, but anyway:

    When using transactions (useAmbientTransaction = true) on any distributed environments (BizTalk and the database not residing on the same machine), MSDTC needs to be configured on both machines. You should use DTCTester.exe on the BizTalk Server to check if a distributed transaction can be completed towards the Oracle server. If enabling distributed transactions on both servers in not an option, you will need to disable transactions on the Send Port (useAmbientTransaction = false), although this is not recommended.

    Morten la Cour

    Tuesday, May 1, 2012 8:11 AM