是否可以使任何类型的自定义资源与 JTA 交互?让我们假设一个基本示例,并采用一个在出现错误时应回滚的文件夹创建。
可以处理这样的自定义资源吗?
最佳答案
是的。该资源需要提供 XAResource 的实现,并且该实现的一个实例需要是 enlisted with the transaction当资源被使用时。资源可以get the current transaction from the transaction manager以便在访问时进行注册(我认为)。
您可以查看 XADisk 的代码,这显然是一个 XA 事务文件管理器,看看它是如何在那里完成的。
但是,在 J2EE 世界中执行此操作的常见方法不是直接处理 JTA,而是使用 JCA 编写资源适配器,它让 J2EE 容器不仅可以处理事务,还可以处理池化、命名和各种其他企业细节。然而,JCA API 并不简单明了,尽管它很困难,但它是由堆积如山的更困难的文档来保护的,其主要目的似乎是阻止对它的理解!
关于java - 通过 JTA 使用任意资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6736241/