2010-06-27 90 views
3

当使用Java Transaction API(JTA)并且我向当前事务注册同步时,如果事务超时,那么是否会调用afterCompletion()方法?如果是这样,那么将调用afterCompletion()方法的时间,即一旦事务运行超过分配的超时值或当事务发布超时的第一个操作发生时?状态参数有什么价值(我认为它会是STATUS_ROLLEDBACK)?JTA同步和超时

回答

2

当使用Java Transaction API(JTA),我注册与当前事务一个Synchronization,将afterCompletion()方法被调用,如果出来的交易时间?

afterCompletion方法被称为后的交易致力于回滚所以它应该超时后调用。

如果是这样,当将在afterCompletion()方法被调用,即一旦事务超过所分配的超时值,或者当发生在交易后超时第一操作运行?

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

状态参数有什么价值(我认为它会回滚)?

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