程序样例:
set xact_abort ON
BEGIN DISTRIBUTED TRANSACTION
insert into [AA].[Test].DbUser.tBMType(Uid,Name,Description,BasePrize,Status)
select Uid,Name,Description,BasePrize,0 as Status
from
(select Uid,Name,Description,BasePrize from [BB].[Test].DbUser.tBMType where Status=1
union
select A.Uid,A.Name,A.Description,A.BasePrize from DbUser.tBMType A left outer join [AA].[Test].DbUser.tBMType B on A.Uid=B.Uid where A.Status=2 and B.Uid is null) A
if @@error=0
COMMIT TRANSACTION
else
ROLLBACK TRANSACTION
set xact_abort OFF
如果正常执行的话,一切OK,但一旦出现异常,以后执行就总抛出这个异常:
0x8004d00e(XACT_E_NOTRANSACTION)。SQL Server 无法向 Microsoft 分布式事务处理协调器(MS DTC)注册为此事务的资源管理器。客户端或资源管理器可能已停止该事务。
详细一点来说就是如果两端数据都正常的话,操作是正常的
接着,我故意制造一个错误
程序抛出意料中异常
"不能在具有唯一索引 'Index_ClientUid' 的对象 'DbUser.tClientType' 中插入重复键的行。"
然后,我再执行一次就永远都是这个错误了:
"登记操作失败: 0x8004d00e(XACT_E_NOTRANSACTION)。SQL Server 无法向 Microsoft 分布式事务处理协调器(MS DTC)注册为此事务的资源管理器。客户端或资源管理器可能已停止该事务。"
运行环境:windows 2003 Server、windows xp sp2
MS Sqlserver 2005
两端的链接服务器、MSDTC配置均已配置正常,用dtcping工具测试通过
系统host文件也已加入IP机器映射
7 个解决方案
#2
要解决此问题, 请按照下列步骤:1. 下载, 然后安装 Microsoft SQL Server 2005 Service Pack 2。 有关如何获取 SQL Server 2005 Service Pack 2, 请单击下列文章编号以查看 Microsoft 知识库中相应:
913089 (http://support.microsoft.com/kb/913089/) 如何获取最新服务包对于 SQL Server 2005
2. 下载, 然后安装最新累积更新 SQL Server 2005 Service Pack 2。 有关如何获取最新累积程序包用于 SQL Server 2005 Service Pack 2, 请单击下列文章编号以查看 Microsoft 知识库中相应:
937137 (http://support.microsoft.com/kb/937137/) SQL Server 2005 生成发布已发布 SQL Server 2005 Service Pack 2 后
回到顶端
替代方法
要解决此问题, 对于 SQLServer 的实例打开跟踪标志 4618 BizTalk 数据库宿主。 要这样做, 请按照下列步骤操作:1. 单击 开始 , 单击 运行 , 类型 sqlservermanager.msc然后单击 确定 。
2. 单击 SQL Server 2005 服务 。
3. 右击 SQLServer ( InstanceName )然后单击 属性 。
4. 在 高级 选项卡, 上 启动参数 框中现有字符串末尾键入 -T4618然后单击 确定 。
5. 重新启动 SQLServer 服务。
回到顶端
更多信息
要解决此问题, 针对的 SQLServer 实例运行以下命令: BizTalk 数据库宿主SELECT SUM(single_pages_kb + multi_pages_kb) AS
"CurrentSizeOfTokenCache(kb)"
FROM sys.dm_os_memory_clerks
WHERE name = 'TokenAndPermUserStore'
如果再次, 运行命令时返回值增加您可能遇到 " 原因 " 一节中列出 Microsoft 知识库文章中介绍的问题之一。 指向这些文章确定, 您遇到问题。
913089 (http://support.microsoft.com/kb/913089/) 如何获取最新服务包对于 SQL Server 2005
2. 下载, 然后安装最新累积更新 SQL Server 2005 Service Pack 2。 有关如何获取最新累积程序包用于 SQL Server 2005 Service Pack 2, 请单击下列文章编号以查看 Microsoft 知识库中相应:
937137 (http://support.microsoft.com/kb/937137/) SQL Server 2005 生成发布已发布 SQL Server 2005 Service Pack 2 后
回到顶端
替代方法
要解决此问题, 对于 SQLServer 的实例打开跟踪标志 4618 BizTalk 数据库宿主。 要这样做, 请按照下列步骤操作:1. 单击 开始 , 单击 运行 , 类型 sqlservermanager.msc然后单击 确定 。
2. 单击 SQL Server 2005 服务 。
3. 右击 SQLServer ( InstanceName )然后单击 属性 。
4. 在 高级 选项卡, 上 启动参数 框中现有字符串末尾键入 -T4618然后单击 确定 。
5. 重新启动 SQLServer 服务。
回到顶端
更多信息
要解决此问题, 针对的 SQLServer 实例运行以下命令: BizTalk 数据库宿主SELECT SUM(single_pages_kb + multi_pages_kb) AS
"CurrentSizeOfTokenCache(kb)"
FROM sys.dm_os_memory_clerks
WHERE name = 'TokenAndPermUserStore'
如果再次, 运行命令时返回值增加您可能遇到 " 原因 " 一节中列出 Microsoft 知识库文章中介绍的问题之一。 指向这些文章确定, 您遇到问题。
#3
帮顶。
#4
打SP2补丁
#5
试过kk19840210提供的方法了,但还是不行,出现一样的情况.郁闷......
#6
打了sp2补丁还是不行,比较郁闷,呵呵
#7
打了sp2补丁还是不行,比较郁闷
#1
#2
要解决此问题, 请按照下列步骤:1. 下载, 然后安装 Microsoft SQL Server 2005 Service Pack 2。 有关如何获取 SQL Server 2005 Service Pack 2, 请单击下列文章编号以查看 Microsoft 知识库中相应:
913089 (http://support.microsoft.com/kb/913089/) 如何获取最新服务包对于 SQL Server 2005
2. 下载, 然后安装最新累积更新 SQL Server 2005 Service Pack 2。 有关如何获取最新累积程序包用于 SQL Server 2005 Service Pack 2, 请单击下列文章编号以查看 Microsoft 知识库中相应:
937137 (http://support.microsoft.com/kb/937137/) SQL Server 2005 生成发布已发布 SQL Server 2005 Service Pack 2 后
回到顶端
替代方法
要解决此问题, 对于 SQLServer 的实例打开跟踪标志 4618 BizTalk 数据库宿主。 要这样做, 请按照下列步骤操作:1. 单击 开始 , 单击 运行 , 类型 sqlservermanager.msc然后单击 确定 。
2. 单击 SQL Server 2005 服务 。
3. 右击 SQLServer ( InstanceName )然后单击 属性 。
4. 在 高级 选项卡, 上 启动参数 框中现有字符串末尾键入 -T4618然后单击 确定 。
5. 重新启动 SQLServer 服务。
回到顶端
更多信息
要解决此问题, 针对的 SQLServer 实例运行以下命令: BizTalk 数据库宿主SELECT SUM(single_pages_kb + multi_pages_kb) AS
"CurrentSizeOfTokenCache(kb)"
FROM sys.dm_os_memory_clerks
WHERE name = 'TokenAndPermUserStore'
如果再次, 运行命令时返回值增加您可能遇到 " 原因 " 一节中列出 Microsoft 知识库文章中介绍的问题之一。 指向这些文章确定, 您遇到问题。
913089 (http://support.microsoft.com/kb/913089/) 如何获取最新服务包对于 SQL Server 2005
2. 下载, 然后安装最新累积更新 SQL Server 2005 Service Pack 2。 有关如何获取最新累积程序包用于 SQL Server 2005 Service Pack 2, 请单击下列文章编号以查看 Microsoft 知识库中相应:
937137 (http://support.microsoft.com/kb/937137/) SQL Server 2005 生成发布已发布 SQL Server 2005 Service Pack 2 后
回到顶端
替代方法
要解决此问题, 对于 SQLServer 的实例打开跟踪标志 4618 BizTalk 数据库宿主。 要这样做, 请按照下列步骤操作:1. 单击 开始 , 单击 运行 , 类型 sqlservermanager.msc然后单击 确定 。
2. 单击 SQL Server 2005 服务 。
3. 右击 SQLServer ( InstanceName )然后单击 属性 。
4. 在 高级 选项卡, 上 启动参数 框中现有字符串末尾键入 -T4618然后单击 确定 。
5. 重新启动 SQLServer 服务。
回到顶端
更多信息
要解决此问题, 针对的 SQLServer 实例运行以下命令: BizTalk 数据库宿主SELECT SUM(single_pages_kb + multi_pages_kb) AS
"CurrentSizeOfTokenCache(kb)"
FROM sys.dm_os_memory_clerks
WHERE name = 'TokenAndPermUserStore'
如果再次, 运行命令时返回值增加您可能遇到 " 原因 " 一节中列出 Microsoft 知识库文章中介绍的问题之一。 指向这些文章确定, 您遇到问题。
#3
帮顶。
#4
打SP2补丁
#5
试过kk19840210提供的方法了,但还是不行,出现一样的情况.郁闷......
#6
打了sp2补丁还是不行,比较郁闷,呵呵
#7
打了sp2补丁还是不行,比较郁闷