Java中的XA事务文件访问是否有开源解决方案?

是否可以在Java中对文件系统进行XA事务访问? 我想在事务的边界内操作文件,我的事务必须通过JTA参与分布式事务(所以我想文件系统需要作为XAResource访问)。 我不需要支持细粒度的读/写文件访问; 将每个文件视为记录对我的需求是足够好的。

有人知道一个已经这样做的开源项目吗? 我不想实现这个烂摊子只是为了发现它已经完成了……

我听到一些传言说JBoss Transcations会增加对此的支持(参见例如此讨论 ),但未能找到关于此的正式声明。

顺便说一句,如果您需要事务性文件访问但不要求事务参与两阶段提交,我建议您查看Apache Commons Transaction

有关复杂性的好文章可以在这里找到。

最近我解决了完全相同的问题。 最后我使用了Bitronix和XADisk。

您可以在我的博客文章中找到更多详细信息: JTA事务管理器 – Atomikos或Bitronix?

XADisk可以帮助您获得所需内容。 它是免费和开源的。

当JBoss Transactions实习生开始时,没有适用于Java的XA文件系统驱动程序。 我最近没有检查过,但也没有看到有关类似工作的任何消息。 如果您想使用Ioannis在实习期间所做的工作,但目前尚未积极开发。 除非你想成为一个开源贡献者:-)

在未来的某个时刻,当我们有时间和/或客户需求时,我们可能会将此function推广到产品中。 与此同时,请访问www.jboss.org/jbosstm/fileio/ ,原始项目讨论请访问www.jboss.org/community/wiki/JBossTSProjects

Jonathan Halliday
JBossTS开发团队

在Atomikos,我们大约10年前做过这个,但由于缺乏需求而放弃了这个想法。

如果有足够的理由,我们可以恢复努力。