找出是否存在与当前线程关联的事务?

时间:2011-07-21 17:45:48

标签: jta

用户事务类中有一个方法提交。当我们提交它时,首先它发现如果有一个与该线程关联的事务。我的问题是如何在核心java级别找出是否存在与当前线程关联的事务? (我知道它是JTA apis的内部流程,但仍然感兴趣)

1 个答案:

答案 0 :(得分:0)

我能想到的一个简单方法是将一个带有Thread引用的映射保存为'key',将Transaction对象保存为'value'。对于过去没有创建事务的线程,地图中没有这样的键,因此UserTransaction实现可以决定抛出异常。

任何代码行都可以通过Thread.currentThread()知道它是哪个线程。

希望有所帮助。

谢谢, 尼丁