Details
-
Bug
-
Resolution: Done
-
Critical
-
5.1.0.BETA2
-
None
-
None
Description
I have a system that performs a large number of tasks in a single transaction for efficiency. Some of those tasks access infinispan caches.
I found that occasionally I have been getting lock timeouts for the default 15 second period.
Lock contention is not a problem - but the impact of failing to obtain the lock results in the whole transaction being aborted, which aborts the work also carried out for potentially a large number of other tasks, resulting in all of the work being retried.
I was wondering if it would be possible to provide an alternative lock implementation the AdvancedCache that allowed a client app to test whether the lock was available and acquire it - returning 'true', but if the lock was not available, simply returning false, allowing the client code to make a decision about how to proceed.
In my case, I could then add the specific task to a retry queue, and move onto the next task, committing all of the work that had been successfully completed for the other tasks.
Attachments
Issue Links
- blocks
-
ISPN-1615 Make putForExternalRead() be non-transactional even for transactional caches
- Closed