问题标签 [msdtc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4159 浏览

sql-server - 多个会话的 NHibernate 事务问题

我已将 NHibernate 设置为使用 MS Sql Server 2008 在 Windows 服务中运行。我使用常规 TransactionScope 来确保操作是原子的。NHibernate 设置为为每个程序集创建一个会话工厂。

我想从 3 个不同的程序集中写入对对象的更改。当我当时使用一两个程序集时,一切正常,但是当我从第三个程序集添加读数时,我遇到了问题。

即从两个程序集中的对象读取/写入工作正常,从程序集中添加对象会产生问题。但是,从第三个程序集读取而不使用其他两个程序集的对象也可以正常工作。我有一种感觉,这些会议正在给彼此制造问题。

我的代码是这样的:

当我尝试完成我的事务范围(通过 scope.Complete())时,我收到以下错误消息:

有什么想法吗?

0 投票
1 回答
895 浏览

sql-server - 强制 MSDTC 孤立 SQLServer 分布式事务

当关闭我的项目的基于 WebSphere 的 JavaEE 应用程序时,分布式事务有时会在 SQLServer 2005 数据库中保持活动状态。它们永远保留它们的锁,必须手动杀死。在这篇非常好的文章中对它们进行了一般性描述。

这篇文章讨论了事务协调器如何无法协调分布式事务参与者,因此将事务标记为进程 ID 为 -2。

鉴于我们很少遇到此问题,但它总是在我们关闭应用程序时发生,我不相信这是 MSDTC 的故障。它更有可能与 WebSphere 以及它如何终止应用程序有关。

我想测试一下。但我不能可靠地做到这一点。

有没有办法强制 MSDTC 孤立 SQLServer 分布式事务?

0 投票
1 回答
3044 浏览

.net - 通过 vbs 脚本更改现有 COM+ 应用程序标识

如何通过 vbs 脚本更改现有的 COM+ 应用程序标识。像 Authentication level = none 和通过 vb 脚本对该用户的身份。发现很多关于添加/删除 com+ 应用程序的帖子,但没有更改现有的。请帮忙

0 投票
2 回答
917 浏览

sql-server - 用于错误处理的 SSIS 本地嵌套事务

我们计划不在 SSIS 中使用 MSDTC 进行事务管理,而是希望通过 Begin transaction 和 commit transaction 使用本地 trsnactions。从设计角度来看,除了一个问题之外似乎还可以。当 SSIS 包在任何任务中失败时,我们有一个错误事件处理程序,它将记录插入到错误表中。所以现在发生的事情是,当 SSIS 回滚事务时,它也在回滚错误处理例程。但我不确定如何精细控制这一点,因为嵌套事务不会工作,因为我在包执行开始时启动事务。

有什么想法吗?

0 投票
1 回答
1760 浏览

.net - MS DTC 或 TransactionScope 最大超时

我有一个关于分布式事务超时的问题。

例如,我有 TransactionScope = 10 分钟的超时时间(最大值,没有编辑 machine.config)。MS DTC 的超时时间(如我在 ComponentServices-MyComputer 属性中所见)为 60 秒。

任何人都知道,将采取什么超时?

0 投票
2 回答
3318 浏览

wcf - WCF net.tcp 绑定分布式事务中的超时问题

通过 WCF net.tcp 绑定运行分布式事务时,我遇到了一个奇怪的超时问题。事务总是在恰好 10 分钟后超时。我想我已经将我知道的所有超时设置为比那个(15 分钟)更高的值,但我可能忽略了一些东西。我正在调用 IIS7.5 中托管的 WCF net.tcp 服务。

在服务端,我有以下绑定配置:

如您所见,所有相关超时均为 15 分钟。在客户端,绑定配置如下:

同样,我知道的所有超时都设置为 15 分钟。最后,启动事务的代码:

Web 服务方法本身具有以下签名:

但是,正如我所说,在开始交易后正好 10 分钟,它就超时了。我不确定是事务本身超时。可能是另一个组件超时导致事务超时。

我错过了什么?是否有我不知道的 IIS 设置?MSDTC 设置?

0 投票
2 回答
1937 浏览

nservicebus - NServiceBus:System.Transactions.TransactionException:合作伙伴事务管理器已禁用其对远程/网络事务的支持

当我尝试在 IHandleMessages 实现中的 Handle(T value) 方法中将记录保存到数据库时,我的订阅者收到此异常。有谁知道为什么会这样?我想我记得 NServiceBus 使用分布式事务来处理消息事务,但我不知道为什么在两台机器上运行“RunMeFirst.bat”文件后它不只是“工作”。

有任何想法吗?

0 投票
1 回答
2988 浏览

ado.net - 在 MSDTC 中禁用网络访问

System.Transactions.TransactionScope()在单元测试中使用插入一条记录,尝试读取它,并让事务范围回滚,以便在数据库中不留下任何足迹。

第 5 行抛出异常,并带有错误消息

System.Transactions.TransactionManagerCommunicationException:分布式事务管理器 (MSDTC) 的网络访问已被禁用。请使用组件服务管理工具在 MSDTC 的安全配置中启用 DTC 以进行网络访问。

我检查了组件服务管理工具,并且我的工作站确实启用了 DTC。我还发现了这个MSDTC 事务范围问题线程,它指导我如何启用网络 DTC 访问

但是当我检查 SQL 服务器时,远程访问复选框已经被选中。还有其他人有其他想法吗?

更多详细信息...当我强制存储库保持相同的连接,而不是为第二个 Sql 语句返回池以获取另一个连接时,它可以工作。显然,对第二个 sql 语句使用不同的连接会触发 DTC 将事务升级为“分布式模式”(它不应该这样做,因为两个 sql 语句都在同一台服务器上,并且使用完全相同的连接字符串),而不是提到即使这样做,(分布式模式)仍然应该工作。

0 投票
1 回答
3155 浏览

.net-4.0 - PROMOTE TRANSACTION 请求失败,因为没有本地事务处于活动状态

什么情况下会看到上面的信息?我有一个对 SQL Server 的调用,它包含在对 TransactionScope 的调用中。在我们的开发和 QA 环境中,MSDTC 被关闭并且调用成功。但是,在我们打开 MSDTC 的生产环境中,此调用失败。当我确定我们根本没有查看分布式事务调用时,是否会导致这种情况?

0 投票
1 回答
1628 浏览

nhibernate - 为什么 NHibernate IPreUpdateEventListener/IPreInsertEventListener 中没有活动事务?

我正在使用 NHibernate 3。我的应用程序在 SQL Server 2008 上运行时运行良好,但在 SQL 2000 上出现间歇性错误(我们已经适当地更改了 NH 方言)。这些错误都与 MDTC(分布式事务)组件有关。通常读取工作正常,但代码在保存/更新期间爆炸,但并不总是出现相同的错误。我们经常看到的一个是,'分布式事务已完成。在新事务或 NULL 事务中登记此会话。'。

我正在调查此问题的根本原因并添加了一些日志记录。我定义了 IPreUpdateEventListener 和 IPreInsertEventListener 拦截器,所以我登录那里以及我的存储库。我发现当我到达我的听众时,当前会话中没有事务。

这是我的存储库代码:

这是我的事件监听器代码:

这是日志输出:

你能看出这有什么问题吗?为什么预插入中没有交易活动?有谁知道我需要为 Sql Server 2000 做些什么特别的事情(MSDTC 已打开)?

注意2008环境是我的本地机器运行Windows 7,Sql Server 2000服务器是Server 2003。