问题标签 [distributed-transactions]

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 投票
3 回答
3268 浏览

transactions - NServiceBus:MSMQ 事务不好吗?

我正在学习 NServiceBus 和 MSMQ。有人告诉我 MSMQ 中的事务队列很糟糕,使用它们对性能非常不利。有谁知道为什么?我猜这来自它使用 DTC 的概念,每个人都知道 DTC 并不是真正的可扩展解决方案。在我看来,带有 NServiceBus 的 MSMQ 并没有那么糟糕有几个原因,但我不知道我是否完全理解它是如何工作的。从逻辑上看,我可以想到 NServiceBus 可能使用事务来获得保证交付的 3 个地方:

  1. 通过网络发送消息时,您可能希望使用事务来确保消息在丢弃之前已到达远程队列。
  2. 从本地队列读取消息时,您可能希望确保在丢弃它之前成功处理它。
  3. 向多个订阅者发布消息时,您可能希望确保它在丢弃之前到达所有订阅者。(我真的希望这不是 NServiceBus 所做的)

谁能告诉我 NServiceBus 是如何做到这一点的?

0 投票
1 回答
202 浏览

wcf - 具有事务支持的 WCF 自定义消息写入

我正在使用继承 System.Servicemodel.Channels.Message 的自定义消息。
我的自定义消息获取从数据库中提取的 IEnumerable 集合。
WCF 服务是事务性的(已经过测试)。

MS-DTC 已启用。

问题是,当在自定义消息处执行受保护的覆盖 void OnWriteBodyContents(XmlDictionaryWriter writer)方法时,没有事务。
System.Transactions.Transaction.Current 为空。在执行服务时,事务流工作正常,但是当消息由 WCF 机制写入时,似乎它超出了事务,导致 DB 命令(拉数据)在没有事务的情况下执行。
请注意,如果我传递的是简单数组而不是 IEnumerable,则 DB 操作将在事务下执行,但我希望它与响应写入并行执行。

请有任何想法,为什么交易丢失以及可以做些什么来激活它?

非常感谢!
塔米尔。

0 投票
2 回答
939 浏览

java - Java的轻量级进程内分布式事务管理器?

我正在尝试扩展 Clojure 以向 refs 添加持久性,以允许用户选择要持久保存的数据存储实例。这需要分布式事务。是否有任何真正的轻量级、进程内分布式事务管理器,支持 XA,用于 Java?如果没有,我必须自己动手,是否有任何好的资源来解释分布式事务协调器必须支持什么?具体来说,我无法理解 XID 的 3 个部分的语义到底应该是什么。作为初始实现,我使用的是 BDB JE。

0 投票
1 回答
775 浏览

jta - 在 Berkeley DB Java 版中为分布式事务 (XA) 设置事务隔离级别

我在 BDB JE 应用程序中使用分布式事务来协调多个 BDB JE 环境中的事务。我想将事务隔离级别设置为可序列化。为了开始分布式事务,我使用我生成的 Xid,并且必须确保它是全局唯一的,避开 BDB JE 的本地 Transaction 类。启动的事务分支是 ThreadLocal,因此在操作中将 null 传递到事务字段中。那么如何设置隔离级别呢?隔离级别是否已经默认为可序列化?我的 Google-fu 没有出现任何问题...

0 投票
0 回答
350 浏览

rest - RESTful 两阶段提交?

可能重复:
REST WCF 服务中的事务

http://rest.blueoxen.net/cgi-bin/wiki.pl?TwoPhaseCommit建议使用自定义标头值来实现两阶段提交,以识别与请求关联的事务。这种方法不会破坏缓存代理吗?例如,代理看到HTTP DELETE /foo了事务 123,但它不够聪明,无法意识到该事务随后被回滚。然后代理继续缓存/foo已删除的事实。

我错了吗?对于实现 RESTful 两阶段提交,您有什么建议?

0 投票
1 回答
33346 浏览

wcf - 找不到配置绑定扩展

我正在尝试运行一个将参与分布式事务的 WCF Web 服务。我不断收到以下错误消息...

找不到配置绑定扩展“system.serviceModel/bindings/myBinding”。验证此绑定扩展是否已在 system.serviceModel/extensions/bindingExtensions 中正确注册并且拼写正确

这是web.config

谁能看到这有什么问题?这让我疯狂!

谢谢

皮特

0 投票
1 回答
333 浏览

transactionscope - 为什么 TransactionScope 不回滚分布式事务?

我正在使用一个名为ECO的对象持久性框架来将数据更新到 SQL Server。我注意到,如果我创建一个 TransactionScope,然后在我的第一个事务提交之后但在我的第二个事务提交之前故意抛出异常,则第一个数据库被更新,而第二个则没有。

我认为一旦分布式事务协调器在主数据库上运行,我只需围绕大量更新创建 TransactionScope 就可以了?

谁能想到为什么这会允许第一个数据库更新但第二个数据库不更新的情况?

0 投票
1 回答
286 浏览

java - 我可以在部署到不同服务器的不同 EAR 上使用 JTA 吗?


我正在研究 JTA,因为我需要分布式事务(跨 JPA、JMS 和 EHCache)。
我试图了解 JTA 是否可以提供我正在考虑的附加功能。
如果我有 3 台不同的服务器,每台运行 Glassfish,每台服务器都有不同的 EAR(我的不同模块)。
我可以进行跨越不同服务器和不同 EAR 的事务吗?

谢谢,
伊泰

0 投票
1 回答
1194 浏览

entity-framework-4 - Why does Entity Framework 4.0 require using DTM? Is it possible to do not use it?

I use EF almost one year ago. I just try to use TransactionScope deal with quite complex query like the following code.

After that, I got some error about DTM is not enabled or accessible. I know it cause by this service at database server is not start or blocked by firewall. But it is not my point.

I want to know why EF uses this service to create transaction while plain SQL script can use only some statement like "BEGIN TRAN", "SAVE TRAN" or "ROLLBACK TRAN" does that.

Is there any other way to avoid calling DTM service for my quite simple transaction statement?

PS. Current working database is so small and I think it should not be affect from different transaction technic.

Thanks,

0 投票
1 回答
895 浏览

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

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

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

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

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

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