在JTA中使用任意资源

是否可以使用JTA进行任何类型的自定义资源转换? 让我们假设一个基本的例子,并采取一个文件夹创建,如果出现错误应该回滚。

可以处理这样的自定义资源吗?

是。 该资源需要提供XAResource的实现,并且在使用资源时需要将该实现的实例与事务一起使用。 资源可以从事务管理器获取当前事务 ,以便在访问时执行注册(我认为)。

您可以查看XADisk的代码,它显然是一个XA事务文件管理器,看看它是如何在那里完成的。

但是,在J2EE世界中执行此操作的常用方法不是直接处理JTA,而是使用JCA编写资源适配器,这使得J2EE容器不仅可以处理事务,还可以处理池,命名和各种其他企业详细信息。 然而,JCA API并不是那么简单,虽然很难实现,但却是由大量更难记录的文档进行辩护,其主要目的似乎是为了防止对它的理解!