是否可以在Java中对文件系统进行XA事务访问? 我想在事务的边界内操作文件,我的事务必须通过JTA参与分布式事务(所以我想文件系统需要作为XAResource访问)。我不需要支持细粒度的读/写文件访问;将每个文件视为记录就足以满足我的需求。
有人知道一个已经这样做的开源项目吗?我不想实现这个混乱只是为了发现它已经完成了......
我听到一些传言说JBoss Transcations会增加对此的支持(参见例如this discussion)但是找不到关于此的官方声明。
顺便说一句,如果您需要事务性文件访问但不要求事务参与两阶段提交,我建议您查看Apache Commons Transaction
有关复杂性的好文章可以在here中找到。
答案 0 :(得分:6)
XADisk可以帮助您找到所需内容。它是免费和开源的。
答案 1 :(得分:3)
当JBoss Transactions实习生开始时,没有适用于Java的XA文件系统驱动程序。我最近没有检查过,但也没有看到有关类似工作的任何消息。如果您想使用Ioannis在实习期间所做的工作,但目前尚未积极开发。除非您想成为开源贡献者: - )
在未来的某个时刻,当我们有时间和/或客户需求时,我们可能会将此功能推广到产品中。同时它位于www.jboss.org/jbosstm/fileio/,原始项目讨论位于www.jboss.org/community/wiki/JBossTSProjects
Jonathan Halliday
JBossTS开发团队
答案 2 :(得分:3)
最近我解决了完全相同的问题。最后我使用了Bitronix和XADisk。
您可以在我的博文中找到更多详细信息:JTA transaction manager – Atomikos or Bitronix?
答案 3 :(得分:0)
在Atomikos,我们大约10年前这样做了,但由于缺乏需求而放弃了这个想法。
如果有足够的理由,我们可以继续努力。