Hi, Igntrs!


When you have your transaction rolled back due to detected deadlock, you
are unabled to perform cache operations (in thread where tx was started and
rolled back), because it leads to TransactionTimeoutException.



The reason of such behavior is that tx thread map (txManager#threadMap) was
not cleared from tx when roll back occured.

In GridNearTxLocal#onTimeout you can find comment on that :

*// Note: if rollback asynchronously on timeout should not clear thread map*

*// since thread started tx still should be able to see this tx.*

Cache operation picks up tx from that map and throws exception.



So, one must create new thread in order to perform cache operations?


-- 

*Best Regards,*

*Kuznetsov Aleksey*

Reply via email to