是否可以使用 JTA 进行任何类型的自定义资源事务?让我们假设一个基本示例,并创建一个在发生错误时应回滚的文件夹。
这样的自定义资源可以处理吗?
是的。该资源需要提供以下实现XA资源 http://download.oracle.com/javaee/5/api/javax/transaction/xa/XAResource.html,并且该实现的一个实例需要是随交易登记 http://download.oracle.com/javaee/6/api/javax/transaction/Transaction.html#enlistResource%28javax.transaction.xa.XAResource%29当资源被使用时。资源可以从事务管理器获取当前事务 http://download.oracle.com/javaee/6/api/javax/transaction/TransactionManager.html#getTransaction%28%29为了在访问时进行注册(我认为)。
你可以查看代码XADisk http://xadisk.java.net/,这显然是一个 XA 事务文件管理器,看看它是如何完成的。
然而,在 J2EE 世界中执行此操作的常见方法不是直接处理 JTA,而是使用JCA http://java.sun.com/j2ee/connector/,它让 J2EE 容器不仅可以处理事务,还可以处理池、命名和各种其他企业细节。然而,JCA API 并不完全简单,尽管它很困难,但它受到堆积如山的更困难的文档的保护,其主要目的似乎是阻止理解它!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)