问题标签 [xa]

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

java - 如果 XAResource 是 Tx 中涉及的唯一资源,则应调用 XAResource.prepare()

我正在尝试一些带有 JOTM 的东西,并且有一些关于事情如何工作的通用问题。我列出了事件的顺序,以获得对所发生事件的明确总结。

  1. 创建交易
  2. 争取资源
  3. tx.commit
  4. 资源.start
  5. 资源端
  6. 资源提交

为什么永远不会调用 resource.prepare 并且提交的标志(onephase)为真。这是此类用例的预期行为吗?

0 投票
2 回答
220 浏览

java - 为什么从 XAResource 抛出 XAException 仍然不允许事务提交成功?

我正在尝试一些带有 JOTM 的东西,并且有一些关于事情如何工作的通用问题。我列出了事件的顺序,以获得对所发生事件的明确总结。

  1. 创建交易
  2. 争取资源
  3. tx.commit
  4. 资源.start
  5. resource.end 抛出 XA 异常
  6. 资源提交

即使 resource.end 抛出 XAException , tx 提交仍然可以工作,这对我来说似乎是完全错误的。如果它没有将 tx 标记为回滚,那么抛出异常有什么意义......

是所有 tx 管理器都这样工作还是抛出 XAException 会使 tx 失败?

0 投票
3 回答
2035 浏览

oracle - Oracle DB锁表使用

最近我有一个任务,根据这个任务,我需要有一个特定的锁定功能。具体是因为:

  1. 正在更新表的事务是分布式的,所以我无法控制它,
  2. 白天必须同时支持数千个非阻塞事务,让我们称它们为“通用”操作,
  3. 每个“通用”操作都更新了特定“分支”(“LDN”、“NY”、“LA”...)上的行,
  4. 每天一次,每个分支都有一个“主”操作,这些操作在不同的分支上大量发生,
    1. 在“主”操作期间,该分支上不会发生“一般”操作。
    2. 当“master”操作开始时,它必须等待当前“general”操作完成提供的分支,这些操作在“master”操作到达之前就在系统中。
    3. 在特定分支的“主”处理期间,可以更新所有其他分支。

为了存档,我创建了 Oracle DB 特定表

支持不同操作的以下功能:

对于“一般”操作:

对于“主”操作:

  1. 当“主”操作到来时,我开始单独的事务,其中:
    1. 在 EXCLUSIVE 模式下锁定 BRANCH_LOCK 表,当在另一个事务中在该表上存在 SHARE 模式 LOCK 时,该事务无法获取(这样,我保证在所有当前的“一般”操作完成后,“主”操作将开始,尽管它等待完成所有分支上的事务,而不仅仅是指定一个),
    2. 将分支的标志设置为“Y”(这样,我保证在“主”操作处理时不会有“一般”事务),
  2. 在传入事务中,我将表中的标志更改为“N”,因此在它提交后,BRANCH_LOG 表将在 FLAG 列中具有适当的值,并且系统将能够再次处理“一般”操作。

这还没有投入生产,所以我想知道有没有更好的解决方案,除了描述的还有其他缺点吗?

一些我没有提到的更新:

  1. '主'操作对'一般'操作的结果起作用,所以在'主'处理期间没有'一般'操作丢失是至关重要的,所以这就是为什么当前'一般'操作必须在主操作开始处理之前完成.
  2. 同一分支上的多个“一般”操作每秒发生一次,每秒大约 3'000 次操作,
  3. 分支只能发生一个“主”操作,可以同时处理不同分支上的多个“主”操作。
0 投票
1 回答
1371 浏览

oracle - Oracle RAC,我需要 XA 驱动程序吗?

我有 Oracle 11g,配置为使用 Real Application Cluster (RAC) 和存储。

我认为 XA 适用于 2PC 事务,适用于多个数据源/管理器。

谢谢。

0 投票
1 回答
729 浏览

java - 没有事务的 JTA 数据源

(假设手动征募和下架资源。)

我有许多启用 XA 的资源/数据源,我计划对其执行事务更新。此外,一些支持 XA 的数据源可以单独更新(不需要任何其他资源)。

假设我已经使用登记的数据源提交了许多事务,那么我是否可以忽略 TransactionManager 以单方面更新数据源。

我是否根本不启动全局事务并直接在资源本身上提交?假设这是正确的方法,那么我是否可以随后在事务中征用资源而不会产生副作用?

谢谢,

克里斯

0 投票
1 回答
1351 浏览

spring - Spring、XA 和 WebSphere

我试图让 XA 事务在 WebSphere v7 内的 Spring v3 应用程序中工作。

我的应用上下文内容如下:

我正在参考这篇文章,它说在 UOW txn 管理器中混合,你会没事的。但它不是那样工作的。相反,在下面的代码中,消息被破坏性地读取,并且在引发异常时不会回滚。

事务逻辑是(在 scala 中):

谁能建议我如何将 WebSphere 的 JTA 事务管理器与 Spring 一起使用?

0 投票
1 回答
1063 浏览

vb6 - 在 64 位 Win2k3 上使用 MSDTC/oracle XA 的 32 位 DLL

我有一个 COM+ 应用程序(主要基于 vb6),我需要在 64 位系统上运行。它应该与 Oracle 数据库(10g,32 位)通信。当我禁用 XA 时一切正常,但是当我启用它时,我收到以下错误;

XA 事务管理器调用 XA 资源管理器 DLL 中的“GetXaSwitch”函数。调用“GetXaSwitch”函数失败:File=d:\nt\com\complus\dtc\dtc\xatm\src\xarmconn.cpp Line=2503。

我的 oracle 客户端是 10g 32 位的。

我不太了解 32 位/64 位兼容性,但我确实看到我的应用程序正在调用位于注册表 WOW64 部分 ([hklm/software/wow6432node/microsoft/msdtc/mtxoci]) 中的 MSDTC dll,而它访问位于注册表的本机 64 位部分中的 XADLL ([hklm/software/microsoft/msdtc/xadll])

因此,我尝试将其中的引用更改为 32 位 dll,但它们不会加载。

有没有人对如何解决这个错误有任何想法?

0 投票
2 回答
2112 浏览

mysql - 如何在jboss上与mysql服务器建立只读xa数据源连接

标题很清楚,如果您分享您的经验,我会很棒。

我试过了,但没有用。。

0 投票
1 回答
1530 浏览

java - XA 模式下 Ehcache 无法将数据溢出到磁盘 (NotSerializableException)

我正在用 Ehcache 试验 XA 事务。目前我正在使用 Spring 事务管理和 Bitronix 作为事务管理器。

我使用以下方法创建、配置和填充缓存:

一切正常,Ehcache 按预期工作,被驱逐的元素超过 70 个。

现在,如果我diskPersistent从更改falsetrue,则在 Ehcache 尝试将某些元素复制到磁盘存储时它不起作用,但以下异常:

这是预期的,因为将 Ehcache 切换到事务模式会使其将Integertype 的原始值替换为 a SoftLock

完整地说,在使用 Atomikos 事务管理器时也会发生这种情况,并且在不使用 XA 模式时可以完美地工作。

问题是:有没有办法混合 XA 事务和磁盘溢出?

0 投票
1 回答
2830 浏览

spring - ActiveMQ JMS XA Atomikos - 事务未启动错误

情况是我们想使用 XA 事务来协调 ActiveMQ 和 Hibernate (Sql Server 2008) 之间的活动。

我们正在使用:

  • 春天 3.0.5
  • 休眠 3.6.2
  • 活动MQ 5.5.0
  • Atomikos 3.7

我们看到在与事务相关的日志文件中生成以下错误尚未启动。这些总是与 JMS 相关。

事务“[ID]”尚未开始。

这些一直在生成到日志中。

问题更复杂,因为我们有 3 个使用相同 JMS 队列的 Web 应用程序,并且当仅运行一个 Web 应用程序时似乎不会生成错误。

这些被部署到在同一台机器上运行的 Tomcat 7.0.14 的不同实例。

我们的 Spring 配置: