我注意到,非常简单的分布式事务在第一次运行时需要很长时间(3-4秒)才能完成。但是如果再次调用相同的事务作用域,速度会快得多(30ms)。似乎MSDTC在一个小时后就进入了睡眠状态。一个小时过后,下一个要运行的事务将需要3-4秒。
我不期望网站上有很大的流量,所以很可能在各个交易之间会有很多小时的流逝。
我认为这可能是因为MSDTC服务被设置为手动启动,但我已经确保MSDTC服务都是自动运行的。
我猜在某个地方有注册表设置,但我在MSDN中找不到任何东西。
谢谢!
发布于 2009-05-15 16:15:20
MSDTC运行COM组件来处理事务,20分钟后(我相信是默认的)这些组件将从内存中卸载。您在第一个事务上看到的速度减慢是环境加速并将内容加载到内存中。
发布于 2013-12-18 18:42:01
我今天遇到了这个问题,我知道这个问题有点老了,但我在研究类似的事情时遇到了这个问题:
http://support.microsoft.com/kb/197810
这个知识库也很旧,但在我看来,空闲连接正在关闭。它还列出了注册表设置。我不确定这是否有帮助,但我的场景非常不同,所以这不是问题(如果这确实是问题),我只想知道发生了什么。
我不太确定MSDTC是作为COM+组件运行的。它有COM接口,但我找不到任何地方提到它是一个COM+组件。它被列为一项服务,可以绕过COM接口,因此可以直接访问MSDTC。尽管如此,我真的怀疑它是一个COM+组件。话虽如此,它还有其他几个依赖项,比如我认为的RPC映射器,它们可能也是这个问题的一部分。
https://stackoverflow.com/questions/869577
复制相似问题