none
Unable to enlist in a distributed transaction RRS feed

  • Question

  • I have a BizTalk solution that inserts data into a table in oracle using WCF-Custom adapter with OracleDBBinding.
    The insert works perfectly fine in QA environment. I have about 20000 records that gets inserted into the oracle table in QA.
    But the same solution does not work in Test environment. The oracle Database has same settings in both QA and test.

    useAmbientTransaction=true works fine in QA, but it doesn't work in Test environment. The load either fails or it only loads one record and fails. The error message i get is "unable to enlist in a distributed transaction".
    I tried setting useAmbientTransaction=false in Test and it seem to work, but the load is very slow. Also noticed that as the number of records increase, the load fails in Test environment. The load is successful for 500-1000 records. However 20000 records load at once in QA but not in test.

    Is there any limitation on WCF LOB adapter? Is there any setting I can change to allow WCF adapter to handle large load?

    Any pointers in resolving this? Please help.


    • Edited by bd_biz Monday, December 10, 2018 3:48 AM
    Saturday, December 8, 2018 10:51 PM

All replies

  • Hi,

    Two things you can do avoid the distributed transactions errors.

    1) Increase the ReceiveTimeout limit to larger value or maximum value 24.20:31:23.6470000 (Refer Link#1)

    2) The maximum number of supported distributed transactions in which can be participate, is 10.
     When you use a connection string you can try to invoke Enlist=false; as connection pool parameter.

    Link#1 https://social.technet.microsoft.com/wiki/contents/articles/13149.biztalk-server-wcf-based-oracle-adapter-and-troubleshooting.aspx?Redirected=true

    HTH


    Hope this Helps!!!! Regards, Note: Please Mark As Answered if you satisfy with Reply.

    Monday, December 10, 2018 8:36 AM
  • Hi,

    As another possible reason of this kind of problem, have you made sure that MSDTC is configured correctly on your Test environment on both the server hosting BizTalk and the server hosting the Oracle database?

    In case you are not familiar with configuring MSDTC, here is a good article.

    https://blog.steef-jan-wiggers.com/2010/01/biztalk-and-msdtc/

    Also there is a page on troubleshooting MSDTC in the BizTalk documentation:

    https://docs.microsoft.com/en-us/biztalk/core/troubleshooting-problems-with-msdtc

    I hope this helps you out.

    Francois

    Monday, December 10, 2018 10:25 AM