Ever seen MSDTC errors caused by heavy database load?

  • [If there's a better forum to post this in, let me know! Thanks!]

    Has anyone seen occurrences of "Network access for Distributed Transaction Manager (MSDTC) has been disabled. Please enable DTC for network access in the security configuration for MSDTC using the Component Services Administrative tool." caused simply by a mirror-ed (not Always On) SQL Server instance under heavy network & cpu load (on AWS)?

    MSDTC has never been enabled, connection strings are identical (and have the failover partner parameter), we are not using distributed transactions, and these only occur very intermittently. The thinking being it could timeout the connection due to load and the client attempts to connect to it's mirror instead when failover has not occurred?

    Wanted to make sure we're not barking up completely the wrong tree. Anything else we should be looking at?

    Thank you very much in advance!

    J

  • This one can be tough to and figure out.  Happened to us twice.  Ended up that an application developer had started a transaction using ADO, and before that transaction was committed did a SaveChanges() from Entity Framework, which wraps it's calls into a transaction as well.  Problem was not realized until production because the developer was using local installations of IIS and SQL Server for testing.  Showed it's face when in production because at that point it was a web server trying to communicate with a database server.

    Found out by debugging on the server and finally got the actual error message about the real problem: there being multiple transactions.

  • ryanbesko - Monday, October 16, 2017 2:50 PM

    This one can be tough to and figure out.  Happened to us twice.  Ended up that an application developer had started a transaction using ADO, and before that transaction was committed did a SaveChanges() from Entity Framework, which wraps it's calls into a transaction as well.  Problem was not realized until production because the developer was using local installations of IIS and SQL Server for testing.  Showed it's face when in production because at that point it was a web server trying to communicate with a database server.

    Found out by debugging on the server and finally got the actual error message about the real problem: there being multiple transactions.

    I was just going to post the same thing since that's the only time I've seen it as well.
    Promotable transactions from the app that get escalated, opening multiple transactions within a transaction scope from the app, etc. 

    Sue

  • Sue, Ryan - thanks. Presumably unless we're running db connections across threads, those tend to happen pretty consistently though, as opposed to a very intermittent issue? Or am I misunderstanding?

  • james.crowley - Monday, October 16, 2017 3:51 PM

    Sue, Ryan - thanks. Presumably unless we're running db connections across threads, those tend to happen pretty consistently though, as opposed to a very intermittent issue? Or am I misunderstanding?

    I would guess that if every process done in that app follows the exact same code path under all conditions then it would be consistent.
    I've seen inadvertent promotions to distributed transactions in various scenarios. I think that's why you can find a fair number of posts about accidental transaction escalation.
    Are there any specifics that led you to believe this is an issue with high activity when using database mirroring?

    Sue

Viewing 5 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic. Login to reply