JTA同步和超时

时间:2010-06-27 16:41:04

标签: java transactions jta

使用Java Transaction API(JTA)并向当前事务注册Synchronization时,如果事务超时,是否会调用afterCompletion()方法?如果是这样,何时调用afterCompletion()方法,即一旦事务超过分配的超时值或者事务发布超时的第一个操作发生? status参数有什么值(我假设它将是STATUS_ROLLEDBACK)?

1 个答案:

答案 0 :(得分:2)

  

使用Java Transaction API(JTA)并在当前事务中注册Synchronization时,如果事务超时,是否会调用afterCompletion()方法?

事务提交回滚 后,afterCompletion方法称为,因此应在超时后调用

  

如果是这样,何时调用afterCompletion()方法,即一旦事务超过分配的超时值或者事务发布超时的第一个操作发生?

AFAIK,如果事务在超时值过去之前没有终止(已提交或回滚),则事务系统将自动回滚。换句话说,它不会等待事务的后续工作。

  

status参数有什么值(我假设它会被回滚)?

我确实会在Status.STATUS_ROLLEDBACK调用时说afterCompletion