Any thoughts on how we can handle this problem?Did anyone else faced similar issue and how did you handled it?
Many times recently we have cases that get "stuck" are doing so because someone processes on them twice. There's three flavors of this:
We're less concerned with option 3 because we've only seen it once. Options 1 and 2, though, are painful.
Could we change those process models to prevent this issue:
We want to include clear messaging to the user when they try and process the second time.
Consider performance too.
Discussion posts and replies are publicly visible
By Implementing Optimistic lock and pessimistic lock.
Optimistick lock works for option 1 and 3, Have "version" column in the main table and check for version before writing to DB, if it is in lower version then write to DB else route it back to UI saying data is modified by other.
Pessimistic lock for option 2, have column in db "isLocked" if anyone opens a related action to update the case record, set "islocked" flag as true, when other tries to update the same case if "islocked" is set to true dont show the related action or dont allow them to update the case.