Hello to all my fellow Cache Developers/Experts out there :)
The purpose of this post is to get input/feedback regarding an issue we are having with our Cache LIS web-based application not being able to remove locks that were taken under a separate process.
Here is the background of how the LIS does the locking and details about the issue:
-> our LIS web-based application sets records into a queue for doing locks and unlocks (the LIS runs under one process - guessing its the CSP server processes that process the broweser-to-backend requests) NOTE: Our LIS is a web application, so in order for locks to be honored across all running user sessions, the LIS web-based application had to implement a web-based lock manager (this was a recommendation from InterSystems circa 2007/2008)
-> our application has a background job that runs to process records placed into the queue that has the lock/unlock requests (this background job is a separate standalone process that would do the physical LOCK + or LOCK - commands)
-> Overall, the lock manager process (as it is called) works really well. But there are times when an unlock request is not able to be processed and we end up with an orphaned lock. When that happens, the users are not able to do any work with the associated database table/record(s) until the lock is released. So our LIS web-based application has a feature to display which accessions (cases) are locked and allows the user to select one or more of the locked accessions and click a button [Remove Lock] to remove the lock. This is the feature that is NOT working. We are guessing that is because the LIS web-based application is running under one Cache process and the background job that takes out the LOCK + is running under a separate Cache process. And we are guessing the LIS web-based application does not have the proper permissions to be able to remove a lock for another Cache process. We are unsure what permissions would be needed by the LIS application default Cache account to be able to remove locks for another Cache process, such as the background job that takes out the locks.
Your input/feedback regarding this issue and recommendations for how to allow the LIS web-based application to remove the locks is appreciated.
Best Regards and GO TEAM!!