JTA如何获取当前事务(JNDI?,ServiceLoader?)?注册同步

时间:2015-09-27 10:22:34

标签: java jta

我有一个需要交易的小型自定义库。 为了支持JTA,我想实现并发布一个Synchronization(我想保持简单,因此没有XAResource)。

1:我可以在beforeCompletion中抛出异常(OptimisticLocking)吗?

但是当我在一个线程中打开我的事务资源时,我需要在当前的JTA事务上注册它。 起初我认为通过使用TransactionSynchronizationRegistry可以实现这一点。 但这似乎是我应该用于交易本地数据的关键值存储。

2:是否使用TransactionSynchronizationRegistry以支持事务暂停/恢复?

因此,为了注册我的同步,我需要JTA Transaction(或者可以给我当前事务的TransactionManager)。 根据JTA 1.1的javadoc,没有JNDI查找来解决它,也没有关于使用java ServiceLoader的提示。

3:这是否意味着解析当前的交易是依赖于提供商的?

4:是否存在解决当前交易的标准的,独立于提供商的方式? (如果没有,我将提供一个消费者界面并使用ServiceLoader基础结构来解决其实现。因此,集成开发人员负责提供解决事务的方法)

0 个答案:

没有答案