代码描述人生

.NET 相关技术 (大坏蛋的blog)

博客园 首页 新随笔 联系 订阅 管理
  28 Posts :: 4 Stories :: 62 Comments :: 2 Trackbacks
今天 juqiang 提到dtcping这个工具,所以想到这个问题:
如果你的机器改过名字,或者使用克隆,或者使用任何虚机来作测试(我们往往安装一台虚机然后拷贝多份,改名使用),都会碰到包含事务的调用长时间挂起问题。解法也如下所示。
通过更详细的分析发现:
1.应用服务器和本关数据库之间的DTC联系有问题,使用DTCTester软件在应用服务器上测试,发现分布式交易会锁死当前的进程。
2.分析Dump文件发现,出现锁死线程的调用栈和已知两种故障的调用栈一致。
a.机器改名后使用DTC。
b.克隆的机器使用DTC。
3.问题的原因在于,当某DTC发现远端的DTC和自己的机器出现相同的CID的时候,将报错。但是DTC在目前版本有一个Bug,报错后会留下一个锁没有释放,造成线程挂起。COM+ rollup 28里解决了这个Bug。目前我们是Rollup 26.
4.询问出现过问题的客户,确实其所有机器都是克隆而来。
5.但是,即使报错也不能解决问题,因为装好的机器的CID不会因为改名而重装。需要重新安装每台机器的DTC。
6.安装步骤如下:
重装DTC请严格按照以下步骤,否则只有重新格式化磁盘,重装系统才能解决问题。
1.将除了下表的服务以外的其他服务设定为手工启动:
Alerter
COM+ Event System
Computer Browser
Distributed File System
Distributed Link Tracking Client
Distributed Link Tracking Server
DNS Client
Event Log
IPSEC Policy Agent
License Logging Service
Logical Disk Manager
Messenger
Net Logon
NT LM Security Support Provider
Network Connectors
Plug and Play
Remote Procedure Call (RPC)
Remote Procedure Call (RPC) Locator
Removable Storage
Security Accounts Manager
Server
System Event Notification
Task Scheduler
TCP/IP NetBIOS Helper Services
Windows Management Instrumentation
Windows Management Instrumentation Driver Extensions
Windows Time
Workstation
2.重新启动机器
3.卸载DTC
打开命令行窗口执行
msdtc -uninstall
4.删除一些注册表项
运行regedit
删除以下项目
HKEY_CLASSES_ROOT\CID
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MSDTC
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\MSDTC
HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC
5.在<%WINDIR%>\System32目录下执行Dtcsetup.exe
6.等待出现安装成功的对话框,点击OK
7.将第一步设为手工启动的服务改会原来的状态。
8.重启机器
9.在命令行窗口执行
msdtc -resetlog
重装完毕。
posted on 2004-04-21 09:30 大坏蛋 阅读(1368) 评论(8)  编辑 收藏 所属分类: EnterpriseService

评论

#1楼  2004-04-21 09:37 steeven [未注册用户]
晕,这么复杂
  回复  引用    

#2楼  2004-04-21 09:44 大坏蛋      
其实不如重装系统来得方便,但是,某些情况下,客户是不能容忍重装系统的....毕竟重装系统的风险很大
  回复  引用  查看    

#3楼  2004-04-21 09:53 hBifTs      
哇,,真的是好麻烦啊:(

  回复  引用  查看    

#4楼  2004-04-21 10:19 jumper      
其实微软并不推荐安装克隆机器,这会带来很多潜在问题。比如对于的每个用户、组、机器等等,安装后都有唯一的sid,但是克隆的系统确一样,这样会造成很多莫名其妙的问题。如果是企业应用的部署安装,我觉得这点人力万万不能省。
  回复  引用  查看    

#5楼  2004-04-21 10:48 大坏蛋      
要是有工具来校正克隆产生的问题就好了 :)
  回复  引用  查看    

#6楼  2004-04-22 00:25 rIPPER [未注册用户]
难道没有吗?
  回复  引用    

#7楼  2004-06-07 22:40 dahuaidan410      
暂时还没有
  回复  引用  查看    

我找不到,System32文件 求助```````
  回复  引用    


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2004-04-21 10:43 编辑过
 
另存  打印