我正在编写一个不支持两阶段提交的资源适配器。 我知道有一种称为“最后资源优化”的优化技术。

在JBoss上,你的XAResource类应该实现LastResource以便进行优化。

我的问题是:如何在WebLogic,WebSpehre,Glassfish等中实现这一目标......

有帮助吗?

解决方案

Weblogic: AFAIK (可能非常错误)只有JDBC驱动程序可以与LRO一起使用,而且它是纯粹的管理任务。当驱动程序不支持XA时,可以将其配置为与LRO一起使用:"如果要从数据源启用非XA JDBC连接以模拟使用JTA参与全局事务,请选择此选项。

基本上,LRO容忍没有准备阶段的资源,并且只能提交或回滚。因此,如果XA事务中只存在一个这样的资源,我们可能首先尝试准备所有其他资源,然后提交该LRO,然后,如果成功,则提交其他资源,否则回滚其他资源。

您看,声明任何接口都没有特殊需要。它是一种可以与任何非XA资源一起使用的算法。我不确定JBoss为什么会这样,但我不希望其他服务器有类似的东西。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top