使用Java Transaction API(JTA)并向当前事务注册Synchronization时,如果事务超时,是否会调用afterCompletion()方法?如果是这样,何时调用afterCompletion()方法,即一旦事务超过分配的超时值或者事务发布超时的第一个操作发生? status参数有什么值(我假设它将是STATUS_ROLLEDBACK)?
答案 0 :(得分:2)
使用Java Transaction API(JTA)并在当前事务中注册
Synchronization
时,如果事务超时,是否会调用afterCompletion()
方法?
事务提交或回滚 后,afterCompletion
方法称为,因此应在超时后调用
如果是这样,何时调用
afterCompletion()
方法,即一旦事务超过分配的超时值或者事务发布超时的第一个操作发生?
AFAIK,如果事务在超时值过去之前没有终止(已提交或回滚),则事务系统将自动回滚。换句话说,它不会等待事务的后续工作。
status参数有什么值(我假设它会被回滚)?
我确实会在Status.STATUS_ROLLEDBACK
调用时说afterCompletion
。