On 2 Sep 2010, at 10:43, Manik Surtani wrote:
You mean when a transaction times out? Or when a task within the
transaction throws a TimeoutException within Infinispan (such as timeouts on lock
acquisition or RPC)?
timeout on lock acquisition.
If it is the former, then the transaction manager aborts the transaction and calls for a
rollback.
yes
The latter would propagate to the transaction manager as an
application error and also trigger an abort/rollback.
it's in our control what
to do in this situation, as this happens on the user's thread and doesn't involve
the TM. If we cannot acquire locks for a timeout shall we:
- throw the TE to the user (we already do that)
- mark the tx for rollback OR just leave the tx as it is and allow the user to retry?
E.g.:
tm.begin()
caceh.put(k1); //this throws TE - what would be the status of the transaction after TE is
thrown?