在JTA中使用任意资源

时间:2011-07-18 16:37:25

标签: java java-ee jta

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

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

1 个答案:

答案 0 :(得分:9)

是。该资源需要提供XAResource的实现,并且在使用资源时该实现的实例需要为enlisted with the transaction。资源可以get the current transaction from the transaction manager,以便在访问时进行注册(我认为)。

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

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