0

我们有一个 J2SE 应用程序(我们将它部署为一个独立的 JAR),它是一个基于 Jetty 的 Web 服务,使用了 JPA (EclipseLink) 和 JTA (Bitronix, UserTransaction)。如您所料,这个应用程序的主要目的是接收 REST 请求、处理、存储和提供数据给 http 客户端。

在处理请求时,有时我们会在 fs 上生成文件。遗憾的是,这个过程超出了我们 JTA 配置的范围。我的任务是将文件生成绑定到 JTA 事务,例如。在 utx.rollback() 时,我必须回滚文件处理,并且在 utx.commit() 成功后,我也必须提交 fs 更改。

我的学长建议我使用 XADisk ( http://xdisk.java.net/ )。看起来很有前途!我做了一些示例阅读,但我仍然对如何将其引入我们的应用程序感到有些困惑。所以我的问题是:谁能给我一些关于如何将这个库实现到 JTA 应用程序中的指南?谢谢!

4

2 回答 2

1

继续寻找文档,我发现了一些信息:

跟踪问题

XADisk 用户指南

后者包含标题为“将 XADisk 加入 JTA 事务”的章节

于 2012-09-24T09:12:48.133 回答
-1

我使用过 XaDisk,我对回滚管理感到非常失望。

见文档:

此异常是当事务无法继续其工作并处于不一致的不完整状态时引发的未经检查的异常。也就是说,事务没有提交或回滚,需要管理干预来解决不一致,然后将事务标记为完成。事务可能在常规 XADisk 操作期间或在 XADisk 的恢复阶段失败。对于常规情况,事务将继续持有文件/目录的锁(在内存中),直到它被标记为完成。

这意味着这个库实际上并没有做任何事情来扭转已经创建/删除的内容等......

很没用

于 2015-06-04T16:37:08.183 回答