当使用 Java Transaction API (JTA) 并且我向当前事务注册了同步时,如果事务超时,是否会调用 afterCompletion() 方法?如果是这样,什么时候会调用 afterCompletion() 方法,即一旦事务运行超过分配的超时值,或者当事务后超时的第一个操作发生时?status 参数有什么值(我假设它是 STATUS_ROLLEDBACK)?
问问题
990 次
1 回答
2
使用 Java Transaction API (JTA) 并
Synchronization
在当前事务中注册 a 时,afterCompletion()
如果事务超时,是否会调用该方法?
该afterCompletion
方法在事务提交或回滚后调用,因此应该在超时后调用。
如果是这样,何时
afterCompletion()
调用该方法,即事务运行超过分配的超时值或事务后超时的第一个操作发生时?
AFAIK,如果事务在超时值过去之前没有终止(提交或回滚),事务系统将自动回滚它。换句话说,它不等待事务的后续工作。
status 参数有什么值(我假设它会被回滚)?
我确实会Status.STATUS_ROLLEDBACK
在afterCompletion
调用时说。
于 2010-06-27T17:42:22.647 回答