最后的资源优化

发布于 2024-07-05 07:42:08 字数 176 浏览 14 评论 0原文

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

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

我的问题是:如何在 WebLogic、WebSpehre、Glassfish 等中完成此操作...

I'm writing a Resource Adaptor which does not support two phase commit.
I know there is an optimization technique called: "Last Resource Optimization".

On JBoss your XAResource class should implement LastResource in order to have the optimization.

My question is: how this can be done in WebLogic, WebSpehre, Glassfish, etc...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

稚然 2024-07-12 07:42:08

Weblogic:据我所知(可能是非常错误的)只有 JDBC 驱动程序可以与 LRO 一起使用,并且这是一个纯粹的管理任务。 当驱动程序不支持 XA 时,可以将其配置为与 LRO 一起使用:“如果要启用来自数据源的非 XA JDBC 连接以使用 JTA 模拟参与全局事务,请选择此选项”< /em>.

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

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

Weblogic: AFAIK (may be very wrong) only JDBC drivers can be used with LRO, and it's a purely administrative task. When a driver doesn't support XA, it can be configured to be used with LRO: "Select this option if you want to enable non-XA JDBC connections from the data source to emulate participation in global transactions using JTA".

Essentially, LRO tolerates a resource that has no prepare phase, and can only be committed or rolled back. Thus, if only one such resource exist in XA-transaction, we may first attempt to prepare all others, then commit that LRO one, then, if succeed, commit others, otherwise rollback others.

You see, there is no special need in declaring any interface. It's an algorithm that can work with any non-XA resource. I'm not sure why JBoss has it, but I don't expect other servers have something similar.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文