"新事务不能登记到指定的事务处理器中"异常的处理----MSDTC的正确配置
在做BizTalk项目的时候,BizTalk Server和Sql Server不在同一台计算机上,使用SQL适配器发送数据提示“新事务不能登记到指定的事务处理器中”的错误,同样的问题在添加SQL适配器元数据时也会提示“无法执行SQL语句。请确保提供的语法正确。新事务不能登记到指定的事务处理器中。”通常是BIZTALK服务器和SQLSERVER服务器双方某个MSDTC中的设置不当引起的.
以下为网上查找到的资料:
1.MSDTC是否正确启动. 察看dcomcnfg中察看msdtc的安全配置选项,保证双方都可以交互
2.MSDTC依赖于RPC,RPC使用的端口是135,测试135端口是否打开.是否有防火墙?如果有先关了防火墙.
telnet IP 135
如果是关闭的打开它.
3.检查你的两台服务器是否在同一个域中. 如果不在同一个域中,是否建立可信任联接
如果Server之间跨网段,则Server之间需要能互相PING到机器名(而不是IP地址)。
如果相互PING机器名有问题,修改system32/driver/etc目录下的hosts文件
4.升级MDAC到2.6以上
5.要安装操作系统最新补丁和SQL的最新补丁
6.如果windows2003(XP)开启了update服务,
则检查注册表[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC]的键值TurnOffRpcSecurity是否为1,如果为0修改为1.
总结:
配置数据交换的时候,BIZTALK需要对SQLSERVER的服务器能启动MSDTC服务以进行数据的读写操作.
所以必须正确配置并启动该服务才能完成相关工作.