问题标签 [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 投票
1 回答
974 浏览

jdbc - 在语句级别覆盖事务超时

我的 ibatis 配置使用 XA 数据源和 JTA 事务管理器。是否可以在语句级别覆盖事务超时。

我尝试了这里建议的选项:指定 IBatis 查询超时。这没用。

我的应用程序中的一个特定 SQL 是一个长时间运行的查询,它在超时后超时。在 weblogic JTA 配置中设置的秒数。

请指教。

0 投票
1 回答
1225 浏览

c# - C# for Mysql 中的分布式事务

我有一个 C# 应用程序。我想运行一个在不同位置插入和更新多个数据库的事务。我注意到是通过 mysql 提供的 .net 连接器来支持的。有什么解决办法吗?我目前正在做的是打开 2 个事务,然后我提交一个,然后我提交另一个,这是有风险的,因为有时某些东西无法更新。

0 投票
3 回答
439 浏览

java - 事务处理多层应用程序

是否有可能跨多个系统进行交易?

例如:

第 1 层 - 公开 Web 服务(部署到 weblogic) 第 2 层 - .NET 前端(部署到 IIS)

我们可以对从 .NET 发起的多个 Web 服务调用进行事务提交或回滚吗?

如果是这样,有人可以指出我的任何资源或文件吗?每一层合规性参与交易有什么特殊要求吗?

0 投票
2 回答
5969 浏览

mysql - MySQL 和 MSSQL 之间的分布式事务

我已经尝试了将近一周的时间来让分布式事务正常工作。我在 MSSQL 上有一些程序试图从 MySQL 中选择数据。我需要在一个(!)交易中做到这一点。当时我已经使用 OpenLink 的单层 MySQL 驱动程序在 MSSQL 上设置了 ODBC 连接,这表明 XA 事务可以成功运行(配置 ODBC 连接后集成了一个测试按钮)。然后我通过 MSDASQL 在 MSSQL 中设置了一个链接服务器到这个 ODBC 连接,但是在做的时候

我收到错误消息,在实际交易中无法启动进一步的交易。( Der OLE DB-Anbieter "MSDASQL" für den Verbindungsserver "optinxa" hat die Meldung "Es können keine weiteren Transaktionen in dieser Sitzung gestartet werden." zurückgeben.)

另一个测试:

结果Der OLE DB-Anbieter "MSDASQL" für den Verbindungsserver "optinxa" hat die Meldung "[OpenLink][ODBC][Driver]Driver does not support this function" zurückgeben.但是为什么在配置时声明 ODBC 驱动程序,XA 事务确实有效?

0 投票
3 回答
9311 浏览

java - 当原因未知时如何调试问题

我们在 weblogic server v10.3.2.0 中面临以下异常。我们正在使用 JRockit JRE 6.0。

每个服务器请求都涉及大约 6-7 个 XA 数据源。当对最后一个数据源的处理刚刚开始时,我们会遇到这个异常。

请有人指教。

0 投票
3 回答
33591 浏览

database - 两阶段提交

我相信大多数人都知道什么是 2PC(两阶段提交协议)以及如何在 Java 或大多数现代语言中使用它。基本上,当您有 2 个或更多数据库时,它用于确保事务同步。

假设我有两个 DB(A 和 B)在两个不同的位置使用 2PC。在 A 和 B 准备好提交事务之前,两个 DB 都会向事务管理器报告它们已准备好提交。因此,当事务管理器被确认时,它会向 A 和 B 发送一个信号,告诉他们继续。

这是我的问题:假设 A 收到信号并提交了事务。一切搞定后,B也准备照做,但有人拔掉了电源线,导致整个服务器关机。当 B 重新上线时,B 会做什么?B是怎么做到的?

请记住,A 已提交但 B 未提交,并且我们正在使用 2PC(所以,2PC 的设计停止工作,不是吗?)

0 投票
1 回答
3123 浏览

java - jdbc中的锁、处理和释放锁

这就是我的要求 - 锁定数据库记录,处理它并释放它

环境 - weblogic 10.3 数据库 - Oracle 11g 数据源 - 涉及多个 XA 资源 Tx mgr - JTA

以下是我迄今为止所做的实验结果:

实验 1 - 依赖未提交的读取

  1. 读取数据库记录
  2. 作为全局 JTA 事务的一部分,在另一个表中通过 id 锁定记录
  3. 处理记录 尝试锁定同一记录的第二个事务将失败,将删除该记录。但是为了使这个工作,RDBMS 应该允许脏读。不幸的是,Oracle 不支持读取未提交的隔离级别。

实验 2 - 本地事务中的锁定记录

  1. 读取数据库记录
  2. 在另一个表中通过 id 锁定记录,作为单独的本地事务
  3. 当事务成功提交时处理记录并删除记录 尝试锁定同一记录的第二个事务将失败,将删除记录。这种方法基于提交的数据,应该可以正常工作。问题来了 - 由于锁事务和全局父事务不同,如果处理失败回滚主事务,我应该通过回滚锁事务来补偿,我不知道该怎么做 -需要帮助在这里

如果我无法回滚记录锁定事务,则必须围绕记录锁定代码编写一些脏逻辑。我不喜欢这个。

这似乎是一个非常普遍的要求。我想知道你们如何优雅地处理这个问题。Oracle 是否支持以任何方式使未提交的更新对所有事务可见。

提前非常感谢。

0 投票
1 回答
1299 浏览

sql-server - 分布式事务的性能开销

(在使用 Atomikos 测试分布式事务的实现时,我注意到开销很大(不使用 XA 需要 30 毫秒的事务使用 XA 需要 160 毫秒)

看起来大部分时间都花在“准备”和“提交”上。

对于测试,我使用了涉及单个数据源(Microsoft SQL Server)的事务的(不切实际的)场景,没有实际更新。在这种情况下,我希望开销最小。

所以我的问题是:

  • 这是“正常”开销吗?
  • 如果没有,我接下来应该去哪里看?(我最好的猜测是使用 SQL Server Profiler 来查看时间是否花费在数据库中)
0 投票
10 回答
194553 浏览

sql-server - 无法开始分布式事务

我正在尝试对链接服务器运行 SQL,但出现以下错误:

提供程序返回两个错误:

错误 #1:

错误 #2

如何让 Microsoft 偏爱功能而不是安全?

或者,至少,我怎样才能让两个 SQL 服务器相互通信?

相关问题


所做的无关紧要,但无论如何我都会发布它。

  1. 确保Distributed Transaction Coordinator服务在两台机器上运行:

    在此处输入图像描述

    在此处输入图像描述

  2. 禁用两台机器上的所有 MSDTC 安全性:

    在此处输入图像描述

    在此处输入图像描述

  3. 在链接服务器上打开随机选项:

在此处输入图像描述

  1. 诅咒和发誓。

  2. 砸东西。

  3. 检查是否SELECT可以使用链接服务器

  4. 检查客户端服务器是否可以ping远程服务器

  5. 检查远程服务器是否可以按名称与启动服务器通信:

  6. 检查是否@@SERVERNAME与两台服务器上的服务器名称匹配

  7. 尖叫

  8. 在发出SET XACT_ABORT ON我的查询之前发出

  9. 授予Everyone Full Control_

    在两台服务器上。

0 投票
1 回答
136 浏览

wcf - wcf 自动完成到底什么时候执行?

我想知道我是否有一个具有 TransactionScopeRequired 但我不使用事务绑定的 WCF 服务...

是否可以先返回消息,然后事务可以回滚?

在其他工作中......哪个先执行?返回消息还是提交?

提前致谢。