问题标签 [mstdc]

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 回答
4378 浏览

transactions - 分布式事务如何工作(例如 MSDTC)?

我以一种模糊的方式了解常规 ACID 事务是如何工作的。您在数据库上执行一些工作,直到设置了某种提交标志才确认工作。提交部分基于一些基本假设(例如单个磁盘块写入是原子的)。如果发生灾难性错误,您可以在恢复阶段清除未提交的数据。

分布式事务如何工作?在我读过的一些 MS 文档中,您可以以某种方式跨数据库和文件系统(除其他外)执行事务。

这项技术可以(并且可能)用于安装程序,您希望程序完全安装或完全不存在。您只需在安装程序启动时开始事务。接下来,您可以连接到注册表和文件系统,进行定义安装的更改。工作完成后,只需提交,如果由于某种原因安装失败,则回滚。这个神奇的分布式事务协调器会自动为您清理注册表和文件系统。

两个不同的系统怎么可能以这种方式进行交易?在我看来,总是有可能使系统处于不一致的状态,即文件系统已提交其更改而注册表没有。我认为在 MSDTC 中甚至可以通过网络执行事务。

我已经阅读了http://blogs.msdn.com/florinlazar/archive/2004/03/04/84199.aspx,但感觉这只是解释的开始,应该大大扩展第 4 步。

编辑:根据我在http://en.wikipedia.org/wiki/Distributed_transaction上收集的信息,可以通过两阶段提交(http://en.wikipedia.org/wiki/Two-phase_commit)来完成。读完后,我仍然没有 100% 理解方法,步骤之间似乎有很大的错误空间。

0 投票
5 回答
3088 浏览

c# - 两个远程 sql 连接时事务范围不起作用

我在我的 C# 控制台应用程序项目中使用两个 SQL Server 连接对象。我需要在单个事务中执行此操作所以我使用了 Transactionscope(分布式事务)

我无法在事务范围内使用连接它显示错误

服务器上的 MSDTC 不可用。

我该如何解决....一个sql连接是远程服务器,另一个是本地服务器。

注意:- msdtc 服务已经启动。

服务器在两台机器上启动。我仍然面临这个问题。我是否需要关闭本地 Intranet 机器中的防火墙。

0 投票
4 回答
17599 浏览

asp.net - MSDTC - 与底层事务管理器的通信失败(防火墙打开,MSDTC 网络访问开启)

我的 ASP.NET Web 表单系统出现问题。

它在我们的测试服务器上工作,但现在我们将其投入使用,其中一台服务器位于 DMZ 内,而 SQL 服务器位于其外部(尽管仍在我们的网络上 - 尽管是不同的子网)

我已经在这两个框之间完全打开了防火墙,看看是否是问题所在,每当我们尝试使用“TransactionScope”时,它仍然会给出错误消息“与底层事务管理器的通信失败”。我们可以访问数据以进行检索,它只是破坏它的事务。

我们也用msdtc ping 测试了连接,并在防火墙上修改了ping 成功,但出现同样的错误!

我该如何解决这个错误?

任何帮助都会很棒,因为我们今天有一个可以上线的系统。恐慌 :)

编辑:我创建了一个更简单的测试页面,其中包含如下事务,并且工作正常。嵌套事务会导致这种错误吗?如果是这样,为什么这只会在使用带防火墙的 dmz 中的 live box 时引起问题?

这是问题发生时我们得到的ErrorStack:在

0 投票
1 回答
480 浏览

wcf - 事务范围 wcf 并避免不必要的升级到分布式事务

我在 wcf 应用程序中遇到升级分布式事务的问题。

我的代码看起来像这样:

日志存储库

日志服务

项目在 .NET 4 中,我使用 Sql Server 2008R2

上面的代码调用我的 wcf 服务,它是这样配置的

我的问题是在事务范围内,它总是以分布式方式推广。

我做错了什么?(我对 wcf 服务编程有点陌生)

谢谢

0 投票
2 回答
13656 浏览

windows - SUBINACL 访问被拒绝

我试图让 SUBINACL 实用程序只显示 MSDTC 服务的信息。

我输入 subinacl /service mstdc 并收到错误 5 access denied

如果我为 DHCP 服务运行相同的命令,它会给我所有的安全性。我在管理员下运行它。注册表中是否有可以为 MSDTC 修复此问题的地方???

我正在使用 Windows 2008 R2 64 位。

谢谢。

0 投票
2 回答
791 浏览

performance - 针对 DB2 表的性能事务范围

我们正在尝试追查性能问题的原因。

我们有一个单行表,其中包含一个主键和一个计数器。在事务中,我们读取计数器的值,将值加一并保存新值。

读取和更新是使用实体框架完成的,我们使用可序列化的事务范围,我们需要确保只读取一次计数器值。

大多数情况下这需要 0.1 秒,有时则需要超过 1 秒。我们无法找到任何模式来解释为什么会发生这种情况。

在使用事务范围时,是否有其他人经历过可变性能?放弃使用事务范围并直接在连接上设置事务是否有帮助?

0 投票
0 回答
36 浏览

.net - DTC - 如何知道交易的结束

当我们根据 MSDN 使用 .net 方法 ContextUtil.SetComplete 时:“COM+ 上下文将提交当前事务,并在方法返回时停用对象”。我不知道如何在事务结束后添加代码的问题?

请指教