Intermittent MSDTC problem | SQL Server Performance Forums

SQL Server Performance Forum – Threads Archive

Intermittent MSDTC problem

Hi ya, We have a Windows 2003 active/active cluster running SQL2000 SP3. We’ve got MSDTC configured as a cluster resource. Everything normally works well, but periodically we get Computer: NA-SQL2
Source: COM+
Category: Executive
Type: Error
Event ID: 4691
Description:The run-time environment was unable to initialize for transactions required to support transactional components. Make sure that MS-DTC is running. (DtcGetTransactionManagerEx(): hr = 0x8004d01b) This only ever happens on the node that isn’t running MSDTC, the other is ok… After rebooting the node everything is ok again… Has anyone else had this?
Cheers
Twan
Not much useful to find out there. At least one link I could find:http://support.microsoft.com/default.aspx?scid=kb;en-us;301600
Frank Kalis
Microsoft SQL Server MVP
http://www.insidesql.de
Ich unterstütze PASS Deutschland e.V. http://www.sqlpass.de)

Correction…<br />Two links [<img src=’/community/emoticons/emotion-1.gif’ alt=’:)‘ />]<br /<a target="_blank" href=http://support.microsoft.com/kb/817064/en-us>http://support.microsoft.com/kb/817064/en-us</a><br /><br />–<br />Frank Kalis<br />Microsoft SQL Server MVP<br /<a target="_blank" href=http://www.insidesql.de>http://www.insidesql.de</a><br />Ich unterstütze PASS Deutschland e.V. <a target="_blank" href=http://www.sqlpass.de>http://www.sqlpass.de</a>) <br />
Hi Frank, thanks for that, yeah I used those articles to configure the clusters in the first place. One problem (which may be related) is if I bring up both nodes from fresh then everything is ok. However if I move MSDTC from one node to another, then I have to restart the SQL instances in order to get them to pick up that MSDTC has moved…? I just can’t figure it out… <sigh> Cheers
Twan
To be honest, I just googled on that. But if you want me to, I can ask this in the private MVP newsgroup. —
Frank Kalis
Microsoft SQL Server MVP
http://www.insidesql.de
Ich unterstütze PASS Deutschland e.V. http://www.sqlpass.de)

Hi Frank, that would be great! I’d be interested if anyone else has had problems like this with DTC suddenly not working, especially after it has failed over. It’s almost like the SQL instances expect DTC to stay on the same node, so it doesn’t cope with DTC failing over to a different node…? Cheers
Twan
Okay, I’ll ask this evening and will reply here when I (hopefully) have an answer. [<img src=’/community/emoticons/emotion-1.gif’ alt=’:)‘ />]<br /><br />–<br />Frank Kalis<br />Microsoft SQL Server MVP<br /<a target="_blank" href=http://www.insidesql.de>http://www.insidesql.de</a><br />Ich unterstütze PASS Deutschland e.V. <a target="_blank" href=http://www.sqlpass.de>http://www.sqlpass.de</a>) <br />
I have an active/passive 2-node cluster on Windows 2003 and I periodicaly experienced the same error at first.
I had found that, although MS-DTC was included as a resource, the SQL Server service did not include MS-DTC as a dependency. What would happen therefore is that, during a failover, the SQL Server service would attempt to start before MS-DTC starts and resulted in the log error. I solved the problem by including MS-DTC as a dependency for SQL Server, which then ensured that MS-DTC was running before the SQL Server service starts.
I dont know if this is relevant to your problem (I’m not clued up on active/active) but maybe it helps.

Is MSDTC in the SQL Server group or a seperate group? Does it work if MSDTC is on another node than SQL Server or only when on the same node? If you run Windows 2003 SP1 there are some new security options under the properties that might have an impact.
Hi Argyle and David, MSDTC is in the cluster group itself, so that both SQL instances can use it. So I can’t create dependencies across the groups MSDTC works for both nodes as long as MSDTC started before the sql instances AND it is still on the same node as when the SQL instances started… e.g. if I have the cluster group and SQL1 on node1 and SQL2 on node2, now when node1 fails and DTC transactions on SQL2 no longer work until I restart SQL2 or get node1 back up and fail cluster and SQL1 back to node1… We do occasionally get other odd problems like sometimes when you open Cluster Admin, you get Access Denied on one node, you can log on to the other node fine. Fail the cluster group over and back and then both nodes can connect to the cluster using cluster admin… This happens on all four of our clusters, so I can’t see it being a cluster corruption or anything like that Cheers
Twan
Strange issue. Could be security related. Any local/domain security policies being applied? Any restrictions on the remote registry service? The SQL service might not have enough rights to read the registry info when the msdtc service moves etc. If the SQL service isn’t in the local administrator group what happens if you add it there and try a failover? You could also give it more user rights in the Local Security Policy editor just to test.
No reply so far. [<img src=’/community/emoticons/emotion-6.gif’ alt=’:(‘ />]<br /><br />–<br />Frank Kalis<br />Microsoft SQL Server MVP<br /<a target="_blank" href=http://www.insidesql.de>http://www.insidesql.de</a><br />Ich unterstütze PASS Deutschland e.V. <a target="_blank" href=http://www.sqlpass.de>http://www.sqlpass.de</a>) <br />
Thanks guys,<br /><br />another thing that I want to try is to fix the speed/duplex on the heartbeat adapters. I’m off on holiday as of tomorrow, so perhaps I won’t do it today <img src=’/community/emoticons/emotion-5.gif’ alt=’;-)’ /> I’ll be back towards the end of Oct, so I’ll catch up with you all then<br /><br />Cheers<br />Twan
Several month of honeymoon, some weeks of work, six weeks of holidays. Man, apparently I must be doing something wrong in my life. [<img src=’/community/emoticons/emotion-5.gif’ alt=’;)‘ />]<br />Enjoy your holiday!<br /><br />–<br />Frank Kalis<br />Microsoft SQL Server MVP<br /<a target="_blank" href=http://www.insidesql.de>http://www.insidesql.de</a><br />Ich unterstütze PASS Deutschland e.V. <a target="_blank" href=http://www.sqlpass.de>http://www.sqlpass.de</a>) <br />
<br />yip, work hard, play hard <img src=’/community/emoticons/emotion-5.gif’ alt=’;-)’ /><br /><br />cheers<br />Twan
Twam, this seem to be a confirmed bug in a Windows 2003 cluster: http://support.microsoft.com/default.aspx?scid=kb;en-us;889706 CAUSE
This problem occurs when the following conditions are true:
• This SQL Server 2000 virtual server is in a Windows Server 2003 clustered environment.
• The Microsoft Distributed Transaction Coordinator (MSDTC) resource and SQL Server 2000 virtual server are not in the same cluster group.
• The MSDTC resource starts after the SQL Server virtual server has started. Note This problem does not occur in Windows 2000 Server clusters. RESOLUTION
A supported hotfix is now available from Microsoft. For more information about how to obtain this hotfix, click the following article number to view the article in the Microsoft Knowledge Base:
821751 http://support.microsoft.com/kb/821751/) Availability of Windows Server 2003 COM+ 1.5 Rollup Package 1
Edit:
Checking further the COM+ 1.5 Rollup Package 1 package mentioned is included in Windows 2003 Service Pack 1 according to this linkhttp://support.microsoft.com/kb/824721. There seem to be a lot of COM+ rollup packages. Up to number 4 is included in Windows 2003 SP1. The latest one is 6.http://support.microsoft.com/default.aspx?scid=kb;en-us;897667
At least one response. Didn’t get one one the private MVP newsgroup. [<img src=’/community/emoticons/emotion-6.gif’ alt=’:(‘ />!]<br /><br />–<br />Frank Kalis<br />Microsoft SQL Server MVP<br /<a target="_blank" href=http://www.insidesql.de>http://www.insidesql.de</a><br />Ich unterstütze PASS Deutschland e.V. <a target="_blank" href=http://www.sqlpass.de>http://www.sqlpass.de</a>) <br />
Thanks Argyle,<br /><br />I’ll chase this up now I’m back <img src=’/community/emoticons/emotion-5.gif’ alt=’;-)’ /><br /><br />yep the holiday was great, but as always way too short…<br /><br />Twan
]]>